javascript - 从对象数组中减去对象数组

标签 javascript

我知道类似的问题已经发布,但它们似乎从未针对相同的问题。

我想从第一个数组 (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/

相关文章:

php - 在 JavaScript onmouseover 中转义 PHP 代码

javascript - 按特定键对对象数组进行排序

javascript - 在 Firebug 控制台中运行 jQuery 调用

javascript - 删除以 'data-wf-' 开头的属性

javascript - 如何在滚动某些像素后触发CSS动画

javascript - Powershell搜索自动化-GetElementbyID不会返回使用Javascript创建的控件的值

javascript - 类按钮超时

javascript - 图像出现在另一图像之上/之上?

javascript - 清除欧芹js中的从属字段错误

javascript - 未在 "mysite.com/"处加载时,RequireJS 不遵循相对路径