简单地说,我想从另一个数组中减去一个数组。
数组是对象数组。我知道我可以遍历一个数组和每个项目,比较另一个数组中的值,但这看起来有点乱。
感谢您的帮助,希望这个问题不是太基本,我试着用谷歌搜索它没有运气:(
编辑:
我希望删除的数组中的对象具有相同的值,但不是同一个对象(感谢@patrick dw)。我希望从初始数组中完全删除子集。
答案 0 :(得分:7)
此答案是从https://stackoverflow.com/a/53092728/7173655复制而来,并扩展了注释和对象解决方案。
代码过滤器数组A。B中包含的所有值都从A中删除。
const A = [1, 4, 3, 2]
const B = [0, 2, 1, 2]
console.log(A.filter(n => !B.includes(n)))
与对象相同:
const A = [{id:1}, {id:4}, {id:3}, {id:2}]
const B = [{id:0}, {id:2}, {id:1}, {id:2}]
console.log(A.filter(a => !B.map(b=>b.id).includes(a.id)))
答案 1 :(得分:2)
http://phpjs.org/functions/index
在JavaScript中没有内置方法可以做到这一点。如果你看一下这个站点,有很多函数用于与PHP语法类似的数组。
答案 2 :(得分:1)