T
True Frontender
@truefrontender986 подп.
534просмотров
54.2%от подписчиков
25 сентября 2025 г.
Score: 587
Привет! Недавно мы разбирали нативный метод Object.groupBy, а сегодня разберём задачу с реализацией кастомного groupBy. Задача Дан массив объектов: const users = [ { name: 'Алиса', age: 21 }, { name: 'Макс', age: 25 }, { name: 'Ваня', age: 21 }, ]; Нужно сгруппировать по возрасту: groupBy(users, user => user.age); // Результат: // { // 21: [{ name: 'Алиса', age: 21 }, { name: 'Ваня', age: 21 }], // 25: [{ name: 'Макс', age: 25 }] // } Решение через reduce: function groupBy(array, fn) { return array.reduce((acc, item) => { const key = fn(item); (acc[key] ||= []).push(item); return acc; }, {}); } Как работает? 1. reduce накапливает объект acc. 2. Для каждого item вычисляем ключ через fn(item). 3. Если ключа нет в acc, создаём массив. 4. Добавляем item в этот массив. 5. Возвращаем обновлённый acc. #JavaScript #interview
534
просмотров
965
символов
Нет
эмодзи
Нет
медиа

Другие посты @truefrontender

Все посты канала →
Привет! Недавно мы разбирали нативный метод Object.groupBy, — @truefrontender | PostSniper