gpt4 book ai didi

javascript - 映射两个数组以查看一个属性是否匹配,然后将特定信息推送到第一个数组中

转载 作者:行者123 更新时间:2023-12-01 00:32:55 25 4
gpt4 key购买 nike

JavaScript 新手,正在努力学习!我试图映射两个对象数组,如果某个属性匹配,则将特定信息提取到第一个数组中。

let result;

let arrNames = [{
id: 10
name: "A"
}, {
id: 11,
name: "B"
}, {
id: 12,
name: "C"
}, }, {
id: 13,
name: "A"
}, {
id: 14,
name: "B"
}]

let arrInfo = [{
name: "A",
info: "AAA"
}, {
name: "B",
info: "BBB"
}, {
name: "C",
info: "CCC"
}]

如果 arrNames.name == arrInfo.name,我想将信息推送到名称数组中。

期望的结果:

let arrNames = [{
id: 10
name: "A",
info: "AAA"
}, {
id: 11,
name: "B",
info: "BBB"
}, {
id: 12,
name: "C",
info: "CCC"
}, }, {
id: 13,
name: "A",
info: "AAA"
}, {
id: 14,
name: "B",
info: "BBB"
}]

我尝试过的:

const res = arrInfo.map((el, index) => {
if(el.name == arrNames[index].name)
arrNames.push(el.info)
}

^ 这显然不起作用——但我想知道扩展或推送在这里是否合适。

提前感谢您的帮助(很抱歉这可能是一个骗局)。

最佳答案

arrInfo 转换为 Map ,以 name 作为键。现在map arrNames 并使用 name 添加从 arrInfoMap 获取的信息。使用object spread组合两个对象:

const arrNames = [{"id":10,"name":"A"},{"id":11,"name":"B"},{"id":12,"name":"C"},{"id":13,"name":"A"},{"id":14,"name":"B"}]

const arrInfo = [{"name":"A","info":"AAA"},{"name":"B","info":"BBB"},{"name":"C","info":"CCC"}]

const arrInfoMap = new Map(arrInfo.map(o => [o.name, o]))

const result = arrNames.map(o => ({ ...o, ...arrInfoMap.get(o.name) }))

console.log(result)

关于javascript - 映射两个数组以查看一个属性是否匹配,然后将特定信息推送到第一个数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58354894/

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