javascript - 从对象数组中减去对象数组
问题描述
我知道已经发布了类似的问题,但它们似乎从未针对相同的问题。
我想itemsToRemove
从第一个数组 ( allItems
) 中删除第二个数组 ( ) 中包含的对象。
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 - 反应 useContext useReducer 状态 Hooks 错误
- android - 如何提高像素绘制过程的性能?
- javascript - 为什么我的 flatlist 在过滤时不会再次呈现我的组件?
- mysql - 如何从一个表中选择不在其他表中的所有行?
- qt - 如何通过命令行升级Qt版本?
- palantir-foundry - 为什么代码工作簿中的“创建新模板”按钮是灰色的?
- mocha.js - 如果“it”部分之一失败,如何停止测试运行?
- javascript - React 将背景 url 转换为 base64 图像
- python - 当我尝试在 python 上安装模块时,错误不断出现
- python - pytorch - 如何对张量\模型的设备(cpu \ gpu)设置进行故障排除