我知道类似的问题已经发布,但它们似乎从未针对相同的问题。
我想从第一个数组 (allItems
) 中删除第二个数组 (itemsToRemove
) 中包含的对象。
allItems = [{x:1, y:2}, {x:1, y:1}, {x:4, y:1}]
itemsToRemove = [{x:1, y:2}]
result = [{x:1, y:1}, {x:4, y:1}]
我尝试了很多方法,但在 find()
条件下却失败了
const result = allItems.filter((itemFromAllItems ) => {
return !itemsToRemove.find( itemToRemove => {
return itemFromAllItems.x === itemToRemove.x && itemFromAllItems.y === itemToRemove.y
})
})
最佳答案
假设您的对象只有 x 和 y 值,这将起作用。
var allItems = [{x:1, y:2}, {x:1, y:1}, {x:4, y:1}]
var itemsToRemove = [{x:1, y:2}]
var result = allItems.filter(e => !itemsToRemove.some(s => s.x === e.x && s.y === e.y));
console.log(result);
希望这有帮助
关于javascript - 从对象数组中减去对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62801331/