Javascript 如果要从第一个数组中删除第二个数组中不存在的对象
如果要从第一个数组“arrayOne”中删除多个对象,而第二个数组“arrayTwo”中不存在这些对象。这只是我的建议。如果你还有别的办法,请告诉我Javascript 如果要从第一个数组中删除第二个数组中不存在的对象,javascript,for-loop,foreach,find,Javascript,For Loop,Foreach,Find,如果要从第一个数组“arrayOne”中删除多个对象,而第二个数组“arrayTwo”中不存在这些对象。这只是我的建议。如果你还有别的办法,请告诉我 let arrayOne = [{ id: 1 }, { id: 2 }, { id: 3 }] let arrayTwo = [{ id: 2 },{ id: 3
let arrayOne = [{
id: 1
}, {
id: 2
}, {
id: 3
}]
let arrayTwo = [{
id: 2
},{
id: 3
}]
for (var index = arrayOne.length; index--;) {
if (!arrayTwo.find(y => y.id === arrayOne[index].id)) {
arrayOne.splice(arrayOne.findIndex(z => z.id === arrayOne[index].id), 1)
console.log("After splice", arrayOne)
}
您还可以使用存储arrayTwo
元素的ID,然后仅提取arrayTwo
中也存在的arrayTwo
元素:
let arrayOne=[{
身份证号码:1
}, {
身份证号码:2
}, {
身份证号码:3
}];
设arrayTwo=[{
身份证号码:2
}];
设arrayTwoSet=newset(arrayTwo.map(e=>e.id));
log(arrayOne.filter(e=>arrayTwoSet.has(e.id))代码>使用Array.some()
内部Array.filter()
let arrayOne=[{id:1},{id:2},{id:3}];
设arrayTwo=[{id:2}];
const result=arrayOne.filter(obj1=>!arrayTwo.some(obj2=>obj1.id==obj2.id));
log('final array:',result)代码>可能想使用INSTEADE请澄清您的问题,并举例说明