对象的Javascript数组;从一个减去另一个

时间:2011-01-06 22:56:41

标签: javascript

简单地说,我想从另一个数组中减去一个数组。

数组是对象数组。我知道我可以遍历一个数组和每个项目,比较另一个数组中的值,但这看起来有点乱。

感谢您的帮助,希望这个问题不是太基本,我试着用谷歌搜索它没有运气:(

编辑:

我希望删除的数组中的对象具有相同的值,但不是同一个对象(感谢@patrick dw)。我希望从初始数组中完全删除子集。

3 个答案:

答案 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)

http://www.jslab.dk/library/Array

此网站在“套装”上有一些js功能

我认为你需要diff功能。