将对象数组从数组转换为对象属性

时间:2018-10-16 16:34:21

标签: javascript arrays algorithm object

我需要将对象数组从该数组转换为对象属性的对象。

以下是array of objects

的示例
const array = [
 {
  book:5,
  car: 6,
  pc: 7
 },
 {
  headphone: 9,
  keyboard: 10
 },
];

我需要将其转换为

const obj = {
 book:5,
 car: 6,
 pc: 7,
 headphone: 9,
 keyboard: 10
};

我尝试了许多方法,但无法达到最终结果。预先感谢

4 个答案:

答案 0 :(得分:5)

您可以将数组作为spread syntax ...的参数(Object.assign)散布,这将返回一个对象。

const
    array = [{ book: 5, car: 6, pc: 7 }, { headphone: 9, keyboard: 10 }],
    object = Object.assign({}, ...array);
    
console.log(object);

答案 1 :(得分:2)

您可以使用.reduce()Object.assign()方法:

const array = [
  {book:5, car: 6, pc: 7},
  {headphone: 9, keyboard: 10},
];

const result = array.reduce((r, c) => Object.assign(r, c), {});

console.log(result);

答案 2 :(得分:0)

您也可以使用for循环遍历数组。我不太清楚使用.reduce()和Object.assign()来了解那些对js中的Objects不太了解,但代码肯定更少的人正在发生的事情。

for(let i = 0; i < array.length; i++){
    for (let key in array[i]) {
        if (array[i].hasOwnProperty(key)) {
            obj[key] = array[i][key];
        }
    }
}

答案 3 :(得分:-1)

怎么样

let obj = {}

for(let object of array) {
  Object.assign(obj, object)
}

console.log(obj)