Задать вопрос
@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>
  • Вопрос задан
  • 179 просмотров
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Академия Эдюсон
    Fullstack-разработчик на JavaScript + ИИ
    11 месяцев
    Далее
  • ProductStar × РБК
    Профессия: Инженер по тестированию + ИИ
    6 месяцев
    Далее
Решения вопроса 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);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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