Как сгруппировать элементы массива на javascript?

Пользователь

от jamey.kohler , в категории: JavaScript , 6 месяцев назад

Как сгруппировать элементы массива на javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от steve , 6 месяцев назад

@jamey.kohler 

Для группировки элементов массива на JavaScript можно использовать метод reduce(). Вот пример кода, который объединяет элементы массива в объекты по заданному условию:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
const arr = [1, 2, 3, 4, 5, 6];

const grouped = arr.reduce((acc, curr) => {
  if (curr % 2 === 0) {
    if (!acc.even) {
      acc.even = [];
    }
    acc.even.push(curr);
  } else {
    if (!acc.odd) {
      acc.odd = [];
    }
    acc.odd.push(curr);
  }
  return acc;
}, {});

console.log(grouped);


В этом примере, элементы массива arr группируются на четные и нечетные числа. Результат группировки будет следующим:

1
2
3
4
{
  even: [2, 4, 6],
  odd: [1, 3, 5]
}


Вы можете изменить условие группировки в if блоке, чтобы соответствовать вашим требованиям.