@megavesta

Как объединить массив с повторяющимися объектами?

Добрый день! Есть подобный массив:
const array = [
    {name: 'SomeName', value: 0},
    {name: 'SomeName', value: 3},
    {name: 'SomeName', value: 1},
    {name: 'SecondName', value: true},
    {name: 'ThirdName', value: '2022-09-01T00:00:00.000+03:00'}
];


Подскажите, как сделать, чтобы объекты с одинаковым name объединялись, а их value попадали в объект, чтобы на выходе получалось такое:
const newArray = {
    SomeName: [0,3,1],
    SecondName: true,
    ThirdName: true
};
  • Вопрос задан
  • 122 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Object.fromEntries(Object
  .entries(arr.reduce((acc, n) => ((acc[n.name] ??= []).push(n.value), acc), {}))
  .map(n => [ n[0], n[1].length === 1 || n[1] ])
)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы