根据一个数组,删除另一个数组指定的对象(去重)

根据数组arr2,删除arr1中指定的数组对象

方法1:

var arr1 =[{a:1},{a:2},{a:3},{a:5},{a:1}];
var arr2 =[1,2];
var arr3 = [];
arr1.map((item1)=>{
    arr2.map((item2)=>{
        if(item1.a == item2){
            item1.isRepeat = true;
        }
    })
})
arr1.map((item)=>{ 
    if(!item.isRepeat){
        arr3.push(item)
    }
})
console.log(arr3)//[{a:3},{a:5}];

方法2:

var arr1 = [{a:1},{a:2},{a:3},{a:5},{a:1}];
var arr2 = [1,2];
var arr3 = arr1.filter(item=>{
    return !arr2.some(c=>{
        return c == item.a
    })
})
console.log(arr3)//[{a:3},{a:5}];

方法3

var arr1 =[{a:1},{a:2},{a:3},{a:5},{a:1}];
var arr2 =[{a:1},{a:2}];
for (var i = 0; i < arr2.length; i++) {
    for (var j = 0; j < arr1.length; j++) {
        if (arr2[i].a == arr1[j].a) {
            arr1.splice(j, 1);
        }
    }
}
console.log(arr1)//[{a:3},{a:5}]改变了原数组
arr2 = arr2.concat(arr1);
console.log(arr2);//[{a:1},{a:2},{a:3},{a:5}]
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容