gpt4 book ai didi

javascript - 如何从 JavaScript 中的 2 个对象中获取公共(public)项?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:33:19 25 4
gpt4 key购买 nike

我有 2 个这样的对象数组:

数组 1

[{"id":1,"relationship_type_id":"3"},
{"id":2,"relationship_type_id":"2"},
{"id":3,"relationship_type_id":"1"},]

数组 2

[{"relationship_type_id":1,"contributing":"yes"},
{"relationship_type_id":2,"contributing":"no"},
{"relationship_type_id":3,"contributing":"yes"}]

我如何找出数组 1 中的哪些 ids 具有正在贡献的关系类型,即基于数组 2 贡献 == "yes"?

结果应该是这样的:

结果 1

[{"id":1}, {"id":3}]

或者更进一步,只返回贡献关系的数量

结果 2

contributingRelationship = 2

最佳答案

你可以使用 .filter()结合.some().map()像这样。

如果 arr2 特别大,您将受益于首先计算贡献类型并将它们保存在映射中以便在过滤 arr1 期间更快地检索。

var arr1 = [{"id":1,"relationship_type_id":"3"},
{"id":2,"relationship_type_id":"2"},
{"id":3,"relationship_type_id":"1"}];

var arr2 = [{"relationship_type_id":1,"contributing":"yes"},
{"relationship_type_id":2,"contributing":"no"},
{"relationship_type_id":3,"contributing":"yes"}];

var contributing = arr1.filter(function(item) {
// filter based on whether arr2 has corresponding item
return arr2.some(function(other_item) {
return other_item.relationship_type_id == item.relationship_type_id && other_item.contributing == "yes";
});
}).map(function(item) {
// map into final representation
return {
id: item.id
};
});

console.log(contributing);

关于javascript - 如何从 JavaScript 中的 2 个对象中获取公共(public)项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30473247/

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