Это похоже на хороший случай для reduce
, он будет l oop по каждому элементу в вашем массиве, позволяя вам отслеживать атрибуты для всех элементов.
prev
начинается так же, как и вы указан во втором параметре (в нашем случае это {}
)
next
- это элемент из вашего массива, начиная с 0-го
Используйте Object.keys для l oop over каждый атрибут в вашем элементе массива, добавляя их к исходному пустому объекту и передавая его.
prev
начинается пустым, но после первого l oop он сохраняет все свойства элемента 1, второго l oop он имеет элемент 1 + элемент 2, et c до тех пор, пока он не завершит цикл.
let myArray = [ {name: 'user 100', name2: 'user200', name3: 'user300'},{name: 'user 101', name2: 'user201', name3: 'user301'}, {name: 'user 102', name2: 'user202', name3: 'user302'} ];
let combined = myArray.reduce((prev, next) => {
Object.keys(next).forEach(key => {
prev[key] = (prev[key] ? prev[key] + ' ' : '') + next[key];
});
return prev;
}, {})
console.log(combined);