gpt4 book ai didi

javascript - 如何将 2 个数组加入到对象数组中

转载 作者:行者123 更新时间:2023-12-04 12:04:40 24 4
gpt4 key购买 nike

我有一些 headerspeopleData :

const headers = ["name", "age", "nationality"]

const peopleData = [
["John", 31, "Spanish"],
["Jane", 41, "Italian"],
["Johnson", 11, "Thai"],
["Rob", 13, "Japanese"],
]
我想将两者结合起来并返回一个对象数组,如下所示:
[{
name: "John",
age: 31,
nationality: "Spanish"
}, {
name: "Jane",
age: 41,
nationality: "Italian"
}, {
name: "Johnson",
age: 11,
nationalityL: "Thai"
}, {
name: "Rob",
age: 13,
nationality: "Japanese"
}]
到目前为止,我想到了这个:
const people = peopleData.map((person, i) => {
return headers.map((header, index) => {
return {
[header]: person[index]
}
})
})
此解决方案不起作用,因为它创建了嵌套对象:
[[{
name: "John"
}, {
age: 31
}, {
nationality: "Spanish"
}], [{
name: "Jane"
}, {
age: 41
}, {
nationality: "Italian"
}], [{
name: "Johnson"
}, {
age: 11
}, {
nationality: "Thai"
}], [{
name: "Rob"
}, {
age: 13
}, {
nationality: "Japanese"
}]]

最佳答案

以下示例:
归功于 Andreas 的评论,下面的表现更好

const headers = ["name", "age", "nationality"];

const peopleData = [
["John", 31, "Spanish"],
["Jane", 41, "Italian"],
["Johnson", 11, "Thai"],
["Rob", 13, "Japanese"],
];

const o = peopleData.map(a =>
a.reduce((acc, b, i) => {
acc[headers[i]] = b;
return acc;
}, {})
);

console.log(o);

在一个线路中,但性能较差

const headers = ["name", "age", "nationality"];

const peopleData = [
["John", 31, "Spanish"],
["Jane", 41, "Italian"],
["Johnson", 11, "Thai"],
["Rob", 13, "Japanese"],
];

const o = peopleData.map(a =>
a.reduce((acc, b, i) => ({ ...acc, [headers[i]]: b }), {})
);

console.log(o);

关于javascript - 如何将 2 个数组加入到对象数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68410999/

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