@The_Last_Dot

Как можно коротко перебрать массив объектов и преобразовать по одинаковому id при помощи javascript?

есть массив объектов
const data = [
  {id: 1, color: red},
  {id: 1, color: black},
  {id: 2, color: green},
  {id: 3, color: white},
  {id: 3, color: blue}
  ...
]


как можно коротко преобразовать данный массив при помощи javascript в вид
const data = [
  {id: 1, colors: [red, black]},
  {id: 2, color: green},
  {id: 3, color: [white, blue]},
]
  • Вопрос задан
  • 135 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const group = (arr, idKey, valKey) =>
  Object.values(arr.reduce((acc, { [idKey]: id, [valKey]: val }) => (
    (acc[id] ??= { [idKey]: id, [valKey]: [] })[valKey].push(val),
    acc
  ), {}));


const result = group(data, 'id', 'color');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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