Как получить массивы объектов с одинаковыми ключами из другого массива объектов?

Пример:
const array = [
{id: 1, name: Test_1},
{id: 2, name: Test_2},
{id: 3, name: Test_3},
{id: 4, name: Test_1},
{id: 5, name: Test_2},
]


На выходе нужно получить 3 массива отсортированные по уникальности поля name:
[
{id: 1, name: Test_1},
{id: 4, name: Test_1},
]

____
[
{id: 2, name: Test_2},
{id: 5, name: Test_2},
]

____
[
{id: 3, name: Test_3},
]
  • Вопрос задан
  • 201 просмотр
Решения вопроса 1
scoffs
@scoffs
Fullstack | C# | Student
Кажется тебе тут поможет `reduce`
const array = [
  {id: 1, name: 'Test_1'},
  {id: 2, name: 'Test_2'},
  {id: 3, name: 'Test_3'},
  {id: 4, name: 'Test_1'},
  {id: 5, name: 'Test_2'}
];

const groupedArrays = array.reduce((result, obj) => {
  // Проверяем, существует ли уже массив с данным значением name
  const existingArray = result.find(arr => arr[0].name === obj.name);
  
  // Если такой массив уже существует, добавляем текущий объект в него
  if (existingArray) {
    existingArray.push(obj);
  } else {
    // Если такого массива еще нет, создаем новый массив с текущим объектом
    result.push([obj]);
  }
  
  return result;
}, []);

// Печатаем результат
groupedArrays.forEach(arr => {
  console.log('____');
  console.log(arr);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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