我正在尝试将propProp(对象数组)与prop(另一个对象数组)进行比较,当匹配时,它将从newProp数组中删除。
prop = [{ id: 1, name: 'John Doe}, {id: 2, name: 'Jane Doe'}, {id: 3. name: 'Baby Doe'}]
newProp = [{id: 4, name: 'Johnny Doe' }, {id: 1, name: 'John Doe'} ....]
这是我尝试过的,想知道是否有更好/更清洁的方法来解决这个问题。
let prop = [{ id: 1, name: 'John Doe'}, {id: 2, name: 'Jane Doe'}, {id: 3, name: 'Baby Doe'}]
let newProp = [{id: 4, name: 'Johnny Doe' }, {id: 1, name: 'John Doe'}]
prop.map( (i,Iindex) => {
newProp.map((o, oIndex ) => {
if (i.id == o.id) {
prop.splice(Iindex, 1);
console.log(prop);
}
})
})
答案 0 :(得分:1)
一种方法是filter()
输出你不需要的物品。
它更干净,更具可读性(你会在遵循函数式编程的人的代码中看到它),但是它产生了一个新的数组,因此如果在非常大的输入数组上频繁调用,会对性能产生负面影响。 / p>
newProp = newProp
.filter(newPropElement =>
prop.every(propElement => newPropElement.id !== propElement.id)
)