преобразовать массив объектов в объект свойств объекта из массива - PullRequest
0 голосов
/ 16 октября 2018

Мне нужно преобразовать массив объектов в объект со свойствами объектов из массива.

Вот пример 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 голосов
/ 16 октября 2018

Вы также можете перебирать массив, используя циклы for.Использование .reduce () и Object.assign () может показаться мне не слишком понятным, чтобы понять, что происходит с людьми, которые не слишком много понимают об объектах в js, но определенно меньше кода.

for(let i = 0; i < array.length; i++){
    for (let key in array[i]) {
        if (array[i].hasOwnProperty(key)) {
            obj[key] = array[i][key];
        }
    }
}
0 голосов
/ 16 октября 2018

Вы можете распространять массив как параметры ( синтаксис распространения ...) для Object.assign, который возвращает один объект.

const
    array = [{ book: 5, car: 6, pc: 7 }, { headphone: 9, keyboard: 10 }],
    object = Object.assign({}, ...array);
    
console.log(object);
0 голосов
/ 16 октября 2018

Как насчет

let obj = {}

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

console.log(obj)
0 голосов
/ 16 октября 2018

Вы можете использовать .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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...