@urajo

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

У меня допустим 3 объекта вида
{
    id: 1,
    group: 1,
    sub: 0,
  }

Сейчас я использую
var a = names.reduce((acc, c) => ((acc[c.group] ? acc[c.group].push(c) : acc[c.group] = [c]), acc), {});

Т.е., сейчас массив группируется исходя только из поля group, я не понимаю как сделать, чтобы он группировал по условию. Если sub не пусто - он создает группу с именем саб, если саб пусто то он выполняет то, что уже написано (группирует по group).
  • Вопрос задан
  • 249 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
arr.reduce((acc, n) => {
  const g = n.sub || n.group;
  (acc[g] = acc[g] || []).push(n);
  return acc;
}, {})
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы