gpt4 book ai didi

javascript - 使用 JavaScript 比较 2 个数组并创建一个新的对象数组,该数组不包含按 id 字段匹配的对象

转载 作者:行者123 更新时间:2023-11-29 19:15:22 25 4
gpt4 key购买 nike

我有两个对象数组。我想使用 JavaScript 创建一个新数组,其中不包含按 id 字段匹配的对象。

第一个数组

[{id: 1, name: "Jo"},{id: 2, name: "Pat"},{id: 3, name: "Mike"}]

第二个数组

[{id: 1, name: "Jo"},{id: 2, name: "Pat"},{id: 3, name: "Mike"}, {id: 4, name: "Mitch"}, {id: 5, name: "Karl"}]

应该返回这个数组

[{id: 4, name: "Mitch"}, {id: 5, name: "Karl"}]

如果可能,使用 lodash 会更好。请注意,第一个数组始终小于或等于第二个数组,并且只能包含第二个数组中的对象。

所以我尝试了以下...

let newArray = _.reject(secondArray, {'id': firstArray});

没有成功,我需要语法方面的帮助。

非常感谢您的时间和帮助。

最佳答案

简短而甜美。 (假设 one 保存第一个数组,two 保存第二个数组)

var oneIDs = one.map(function (a) {return a.id});

var result = two.filter(function (a) {
return oneIDs.indexOf(a.id) === -1;
});

解释:

首先,获取第一个数组中所有元素的 id 的查找数组。

其次,获取第二个数组的所有元素,其 id 不在查找数组 (oneIDs) 中。

关于javascript - 使用 JavaScript 比较 2 个数组并创建一个新的对象数组,该数组不包含按 id 字段匹配的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35787035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com