@1233211

Как в массиве оставить объекты только с уникальными id?

подскажите, пожалуйста.
есть массив с объектами, у объектов может быть одинаковый id

нужно оставить в массиве только объекты с разными id и добавить недостающую информацию из одного объекта в другой с тем же id.

из такого [{ id: 1, value: '', name: 'Vasya' }, { id: 1, value: '123' }, { id: 2, value: '321' }]
должно получиться такое
[{ id: 1, value: 123, name: 'Vasya' }, { id: 2, value: 321 }]
  • Вопрос задан
  • 91 просмотр
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
const newArr = Object.values(arr.reduce((acc, n) => (Object.assign(acc[n.id] ??= {}, n), acc), {}));
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
const result = Object.values(data.reduce(
  (acc, val) => {
    acc[val.id] = Object.assign(acc[val.id] ?? {}, val);
    return acc;
  },
  {}
));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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