Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник JavaScript

Object.groupBy

Группирует элементы массива по ключу.

Доступно с: ES2024

Синтаксис

Object.groupBy(items, callbackFn)

Параметры

ПараметрТипОписание
itemsIterableМассив или другой перебираемый объект.
callbackFnFunctionФункция, которая возвращает ключ группы для элемента.

Возвращаемое значение

objectОбъект, где каждый ключ — группа, а значение — массив её элементов.

Примеры

Чётные и нечётные числа:

const groups = Object.groupBy([1, 2, 3, 4, 5], (n) => (n % 2 === 0 ? 'even' : 'odd'));
 
console.log(groups.even.join(', '));
console.log(groups.odd.join(', '));

Результат:

2, 4
1, 3, 5

Товары по категориям:

const products = [
  { name: 'Apple', type: 'fruit' },
  { name: 'Carrot', type: 'vegetable' },
  { name: 'Pear', type: 'fruit' },
];
const byType = Object.groupBy(products, (product) => product.type);
 
console.log(byType.fruit.map((p) => p.name).join(', '));
console.log(Object.keys(byType));

Результат:

Apple, Pear
[
  "fruit",
  "vegetable"
]

Примечания

Если ключи групп — не строки (например объекты), используйте Map.groupBy(). До появления этого метода группировку писали через reduce().

См. также

  • Map.groupBy — Группирует элементы в Map по любому ключу.
  • Array.prototype.reduce — Сводит массив к одному значению.
  • Array.prototype.filter — Создаёт новый массив из элементов, прошедших проверку.

Вопросы и ответы по теме

В учебнике

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.