根據一個數組,刪除另一個數組指定的對象(去重)

根據數組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}]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章