gpt4 book ai didi

javascript - 将 2 个相关数组映射在一起

转载 作者:行者123 更新时间:2023-11-30 10:00:35 25 4
gpt4 key购买 nike

我正在寻找在 JavaScript 中将相关数组合并在一起的最干净、最酷的方法。

我的例子是这样的:

我从我的 API 中获得了两个 JSON 数组:问题和位置。

问题有一个 location_id,因此我想给每个问题一个 location 字段,该字段具有正确的 location 对象,具体取决于问题的 location_id

如果我有这些数据:

var issues = [{id: 1, title: 'issue 1', location_id: 1}, {id: 12, title: 'issue 1', location_id: 2}];

var locations = [{id: 1, name: 'location 1'}, {id: 2, name: 'location 2'}];

丑陋的解决方案是:

for(i = 0; i < issues.length; ++i) {
for(j = 0; j < locations.length; ++j) {
if(issues[i].location_id == locations[j].id) {
issues[i].location = locations[j];
break;
}
}
}

生成的 issues 数组将是:

[[object Object] {
id: 1,
location: [object Object] {
id: 1,
name: "location 1"
},
location_id: 1,
title: "issue 1"
}, [object Object] {
id: 12,
location: [object Object] {
id: 2,
name: "location 2"
},
location_id: 2,
title: "issue 1"
}]

我试图(但失败了)想出一个更短的解决方案,甚至是使用 .map() 的一个衬里。

感谢任何指导!! :)

最佳答案

使用mapfilter :

issues.map(function (issue) {
issue.location = locations.filter(function(location) {
return issue.location_id === location.id;
})[0];
return issue;
});

关于javascript - 将 2 个相关数组映射在一起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31939010/

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