Javascript 如果要从第一个数组中删除第二个数组中不存在的对象

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

如果要从第一个数组“arrayOne”中删除多个对象,而第二个数组“arrayTwo”中不存在这些对象。这只是我的建议。如果你还有别的办法,请告诉我

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请澄清您的问题,并举例说明