在 JavaScript 中从两个数组创建一个对象

JavaScript 中从两个数组创建一个对象:

  1. 使用 Array.forEach() 方法迭代第一个数组。
  2. 使用索引访问第二个数组中的元素。
  3. 在每次迭代中,将键值对分配给一个对象。
const arr1 = ['name', 'age', 'country'];
const arr2 = ['Tom', 30, 'Chile'];

const obj = {};

arr1.forEach((element, index) => {
  obj[element] = arr2[index];
});

// 👉️ {name: 'Tom', age: 30, country: 'Chile'}
console.log(obj);

我们传递给 Array.forEach() 方法的函数会针对数组中的每个元素进行调用。

该函数传递了以下 3 个参数:

  • 当前元素
  • 迭代索引
  • 数组本身

方法完成迭代后,对象包含来自两个数组的键值对。

另一种但更实用的方法是使用 Array.reduce() 方法。

从两个数组创建一个对象:

  1. 使用 reduce() 方法迭代第一个数组。
  2. 提供一个空对象作为累加器的初始值。
  3. 使用索引,将键值对分配给累积的对象。
  4. 返回结果。
const arr1 = ['name', 'age', 'country'];
const arr2 = ['Tom', 30, 'Chile'];

const obj = arr1.reduce((accumulator, element, index) => {
  return {...accumulator, [element]: arr2[index]};
}, {});

// 👇️️ {name: 'Tom', age: 30, country: 'Chile'}
console.log(obj);

我们提供了一个空对象作为累加器变量的初始值。

在每次迭代中,我们使用扩展语法 … 将累加器的键值对解包到一个新对象中,然后添加当前键值对并返回结果。

一旦 reduce 方法迭代了整个数组,累加器对象将包含来自两个数组的键值对。