Задать вопрос
@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>
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 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;
}, {});
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
const array = ['part1-item1', 'part1-item2', 'part2-item1', 'part3-item1'];

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

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

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