根据数组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}]