【发布时间】:2019-09-17 15:57:21
【问题描述】:
给定这两个数组:
const array1 = [
{"id": 1, "color": "black"},
{"id": 2, "color": "white"},
{"id": 3, "color": "orange"}
];
const array2 = [
{"id": 2, "color": "white"},
{"id": 4, "color": "purple"}
];
如果在第二个数组中找到重复项,我如何从第一个数组中删除重复项,即结果将是:
const filtered = [
{"id": 1, "color": "black"},
{"id": 3, "color": "orange"}
];
我的代码:
const filtered = array1.map(i => array2.filter(j => i["id"] !== j["id"]))
但它似乎不起作用
【问题讨论】:
-
id属性或属性组合是否考虑了重复项?例如,如果array2包含{ "id": 3, "color": "blue" },您的预期行为是什么 -
@AndrewLohr 相关,但不完全相同。我确定有一个,但那个答案依赖于按值比较数组元素的能力(而不是每个元素的属性)。
标签: javascript arrays ecmascript-6