551просмотров
55.9%от подписчиков
18 августа 2025 г.
Score: 606
Привет! Обычно для группировки я использую groupBy из Lodash, но в самом JavaScript тоже есть встроенные методы: 1. Object.groupBy 2. Map.groupBy Пример данных с которыми будем дальше работать: const users = [ { name: "Аня", age: 25, city: "Москва" }, { name: "Иван", age: 30, city: "Москва" }, { name: "Оля", age: 22, city: "Казань" }, { name: "Петя", age: 30, city: "Казань" },
]; Object.groupBy: const byCity = Object.groupBy(users, user => user.city);
console.log(byCity);
// {
// "Москва": [ { name: "Аня", age: 25 }, { name: "Иван", age: 30 } ],
// "Казань": [ { name: "Оля", age: 22 }, { name: "Петя", age: 30 } ]
// } Map.groupBy: const byAge = Map.groupBy(users, user => user.age);
console.log(byAge);
// Map(3) {
// 25 => [ { name: "Аня", age: 25 } ],
// 30 => [ { name: "Иван", age: 30 }, { name: "Петя", age: 30 } ],
// 22 => [ { name: "Оля", age: 22 } ]
// } Разница
1. Object.groupBy - возвращает объект, ключи всегда строки.
2. Map.groupBy - возвращает Map, где ключи могут быть любыми. Встроенные методы — классная альтернатива без зависимостей, но Lodash остаётся для меня удобным и универсальным инструментом) #JavaScript