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

neo*_*ser 6 javascript

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

数组是对象的数组。我知道我可以循环遍历一个数组和每个项目,比较另一个数组中的值,但这似乎有点混乱。

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

编辑:

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

Adr*_*orz 15

这个答案是从/sf/answers/3716490991/复制的,扩展了评论和对象解决方案。

代码过滤器数组 A。 B 中包含的所有值都从 A 中删除。

const A = [1, 4, 3, 2]
const B = [0, 2, 1, 2]
console.log(A.filter(n => !B.includes(n)))
Run Code Online (Sandbox Code Playgroud)

对象也一样:

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)))
Run Code Online (Sandbox Code Playgroud)


sis*_*onb 3

http://phpjs.org/functions/index

JavaScript 中没有内置方法可以执行此操作。如果您查看此站点,您会发现许多数组函数的语法与 PHP 类似。