@Quambaras

Как из массива с объектами получить массив массивов?

К примеру имеется такой массив:
const arr = [
  {name: 'name1', value: 10, bool: true},
  {name: 'name1', value: 10, bool: true},
  {name: 'name2', value: 10, bool: true},
  {name: 'name2', value: 10, bool: true},
  {name: 'name2', value: 10, bool: true},
  {name: 'name3', value: 10, bool: true},
  {name: 'name3', value: 10, bool: true},
  {name: 'name3', value: 10, bool: true},
]


как отсортировать этот массив, что бы внутри были массивы с объектами по одинаковому имени, типа такого:

[
  [
  {name: 'name1', value: 10, bool: true},
  {name: 'name1', value: 10, bool: true},
 ],
 [
  {name: 'name2', value: 10, bool: true},
  {name: 'name2', value: 10, bool: true},
  {name: 'name2', value: 10, bool: true},
 ],
 [
  {name: 'name3', value: 10, bool: true},
  {name: 'name3', value: 10, bool: true},
  {name: 'name3', value: 10, bool: true},
 ]
]
  • Вопрос задан
  • 109 просмотров
Решения вопроса 1
WblCHA
@WblCHA
const result = Object.values(arr.reduce((acc, obj) => {
    const key = obj.name;
    if(acc[key]) {
      acc[key].push(obj);
    } else {
      acc[key] = [obj];
    }
    return acc;
  }, {}));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы