在 JavaScript 中,有几种常见的方法可以将数组转换为对象。下面我将介绍最常用的几种方式:
Object.assign()
方法const arr = ['a', 'b', 'c'];
const obj = Object.assign({}, arr);
console.log(obj); // {0: 'a', 1: 'b', 2: 'c'}
const arr = ['a', 'b', 'c'];
const obj = {...arr};
console.log(obj); // {0: 'a', 1: 'b', 2: 'c'}
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'}
如果数组包含键值对(子数组),可以使用 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'}
对于更复杂的转换需求,可以手动创建对象:
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'}
undefined
选择哪种方法取决于你的具体需求和数组的结构。