@stanislavkm

Как сгруппировать значения массива?

Есть массив:
const array = ['part1-item1', 'part1-item2', 'part2-item1', 'part3-item1']

Нужно получить
{
  part1: ['item1', 'item2'],
  part2: ['item1'],
  part3: ['item1']
}

Если в объекте нет ключа с названием part, то создаем его как массив, иначе пушим item в него.
Начал так:
arr.reduce((acc,rec) => {
  const [devId, paramId] = rec.split('-')
  if (!acc[devId]) {
    return {...acc, [devId]: [paramId]}
  } else {
    
  }
}, {})
<code>
  • Вопрос задан
  • 51 просмотр
Пригласить эксперта
Ответы на вопрос 1
@null_object
const array = ['part1-item1', 'part1-item2', 'part2-item1', 'part3-item1'];

const result = array.reduce((acc, rec) => {
  const [part, item] = rec.split('-');
  if (!acc[part]) {
    acc[part] = [item];
  } else {
    acc[part].push(item);
  }
  return acc;
}, {});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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