如何在JavaScript中将两个数组转换为一个对象?
我有两个数组,一个用于玩家姓名:
players_name = ['John','Paul','Jack',...]
另一个是球员的积分:
points = [23,13,18,...]
我想知道是否可以(不是手动)将这两个数组转换为一个如下所示的对象:
players_results = {
'John': { point: 23},
'Paul': { point: 13},
'Jack': { point: 18},
}
谢谢 !
回答
您可以Object.fromEntries()用于实现您所需的结果。
fromEntries接受一个数组数组(嵌套数组包含两个值,第一个是键,第二个是值),然后将其转换为对象。尝试这个-
const players_name = ['John','Paul','Jack'];
const points = [23,13,18];
const result = Object.fromEntries(
players_name.map((name, i) => ([name, {point: points[i]}]))
);
console.log(result);
.as-console-wrapper{min-height: 100%!important; top: 0}
注意:使用 aname作为对象的键不是一个好主意。不同人的名字可能相似。改为使用唯一值作为键。
回答
const players_name = ['John', 'Paul', 'Jack']
const points = [23, 13, 18]
const result = players_name.reduce((prev, item, i) => {
prev[item] = {
point: points[i]
}
return prev;
}, {});
console.log(result)