for(let i of A){
if(B.indexOf(i) === -1){
C.push(i)
}
}
请问一下大家两个对象数组A和B,去除A中B含有的元素,上述代码判断某个值相同是:对象有很多属性是每个属性都要对上吗?
for(let i of A){
if(B.indexOf(i) === -1){
C.push(i)
}
}
请问一下大家两个对象数组A和B,去除A中B含有的元素,上述代码判断某个值相同是:对象有很多属性是每个属性都要对上吗?
收起
对象数组查找对象不能直接使用indexOf,因为即使两个对象即使字段值都一样,但是它们的地址不一样
let arr=[
{id:'A1',age:12},
{id:'A2',age:12}
];
let obj={id:'A1',age:12}
console.log(arr.indexOf(obj))
一般会给对象设置一个唯一标识字段,例如上述例子的id,然后
你要实现的功能可以这么写
let arr=[
{id:'A1',age:12},
{id:'A2',age:12}
];
let arr2=[
{id:'A1',age:12}
];
let arr3=[];
for(let i in arr){
if(arr2.filter(x=>x.id==arr[i].id).length==0){
arr3.push(arr[i]);
}
}
报告相同问题?