首页 > 解决方案 > 如何使用 forEach 将嵌套数组转换为对象?

问题描述

我可以使用 for 循环来实现这一点,但我不知道如何使用 forEach 来做同样的事情。

例如: var input = [['make', 'Ford'], ['model', 'Mustang'], ['year', 1964]]; 调用该函数应导致:

{
  make : 'Ford',
  model : 'Mustang',
  year : 1964
}

标签: javascriptarraysforeachnested

解决方案


我们可以使用 forEach 和Array 解构来实现这一点

var input = [
  ["make", "Ford"],
  ["model", "Mustang"],
  ["year", 1964],
];

const result = {};

input.forEach(([prop, value]) => {
  result[prop] = value;
});

/*--------- OR --(withour array destructuring)-------------
input.forEach(internalArr => {
  result[internalArr[0]] = internalArr[1];
});
*/

console.log(result);

您也可以使用Array.prototype.reduce来实现这一点。Array.prototype.reduce 是完成这项工作的正确工具。

var input = [
  ["make", "Ford"],
  ["model", "Mustang"],
  ["year", 1964],
];

const result = input.reduce((acc, curr) => {
  const [prop, value] = curr;
  acc[prop] = value;
  return acc;
}, {});

console.log(result);


推荐阅读