如何在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)


以上是如何在JavaScript中将两个数组转换为一个对象?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>