插件窝 干货文章 Javascript如何将数组转换为对象

Javascript如何将数组转换为对象

数组 JavaScript const 对象 252    来源:    2025-04-25

JavaScript 数组转换为对象的方法

在 JavaScript 中,有几种常见的方法可以将数组转换为对象。下面我将介绍最常用的几种方式:

1. 使用 Object.assign() 方法

const arr = ['a', 'b', 'c'];
const obj = Object.assign({}, arr);
console.log(obj); // {0: 'a', 1: 'b', 2: 'c'}

2. 使用展开运算符 (...)

const arr = ['a', 'b', 'c'];
const obj = {...arr};
console.log(obj); // {0: 'a', 1: 'b', 2: 'c'}

3. 使用 Array.reduce() 方法

这种方法更灵活,可以自定义键名:

const arr = ['a', 'b', 'c'];
const obj = arr.reduce((acc, current, index) => {
  acc[index] = current;
  return acc;
}, {});
console.log(obj); // {0: 'a', 1: 'b', 2: 'c'}

4. 键值对数组转换为对象

如果数组包含键值对(子数组),可以使用 Object.fromEntries()

const arr = [['name', 'John'], ['age', 30], ['city', 'New York']];
const obj = Object.fromEntries(arr);
console.log(obj); // {name: 'John', age: 30, city: 'New York'}

5. 自定义转换

对于更复杂的转换需求,可以手动创建对象:

const arr = ['name', 'John', 'age', 30, 'city', 'New York'];
const obj = {};

for (let i = 0; i < arr.length; i += 2) {
  obj[arr[i]] = arr[i+1];
}

console.log(obj); // {name: 'John', age: 30, city: 'New York'}

注意事项

  1. 前两种方法会将数组索引作为对象的键
  2. 如果数组包含非原始值(如对象、数组),转换后的对象将包含这些值的引用
  3. 对于稀疏数组,未定义的索引在对象中会显示为 undefined

选择哪种方法取决于你的具体需求和数组的结构。