【JS】js 实现两个数组(一个数组包含于另一个数组中)去重的问题

arr2是arr1的子数组,(也就是说arr2中的元素arr1都有)现在要得到在arr1中删除arr2中出现的元素后的结果,各位大神有什么好办法
【JS】js 实现两个数组(一个数组包含于另一个数组中)去重的问题

    var arr1 = [

{id:1,name:'a'},

{id:2,name:'abc'},

{id:3,name:'abbb'},

{id:4,name:'abxxx'},

{id:5,name:'xyz'},

{id:6,name:'abcdef'},

{id:7,name:'abzzzz'}];

var arr2 = [

{id:1,name:'a'},

{id:5,name:'xyz'},

{id:7,name:'abzzzz'}];

回答

var result = arr1.filter(function(item1) {

return arr2.every(function(item2) {

return item2.id !== item1.id

})

})

var out=[];

var flag=true;

for(var i=0;i<arr1.length;i++){

flag=true;

for(var j=0;j<arr2.length;j++){

if(arr1[i].id==arr2[j].id && arr[i].name == arr2[j].name ){ // 如果数据能保证id和name一直配对,则可以少一个比较条件

flag = false;

break;

}

}

if(flag){

out.push(arr1[i]);

}

}

for(var i = 0 ; i < arr1.length ; i++){

for(var j = 0 ; j < arr2.length ; j++){

if(arr1[i].id == arr2[j].id){

arr1.splice(i,1);

}

}

}
console.log(arr1)

遍历数组取交集

以上是 【JS】js 实现两个数组(一个数组包含于另一个数组中)去重的问题 的全部内容, 来源链接: utcz.com/a/86832.html

回到顶部