Skip to main content

groupBy

배열의 요소들을 제공된 콜백 함수 callbackFn에 따라 그룹화하여, 각 키에 해당하는 항목들의 배열을 포함하는 객체를 반환합니다.

Code

🔗 실제 구현 코드 확인

Benchmark

  • hz: 초당 작업 수
  • mean: 평균 응답 시간(ms)
이름hzmean성능
modern-kit/groupBy20,066.270.0498fastest
lodash/groupBy7,716.570.1296slowest
  • modern-kit/groupBy
    • 2.60x faster than lodash/groupBy

Interface

typescript
function groupBy<T, K extends PropertyKey>(
items: T[] | readonly T[],
callbackFn: (item: T) => K
): Record<K, T[]>

Usage

typescript
import { groupBy } from '@modern-kit/utils';
const items = [
{ category: 'fruit', name: 'apple' },
{ category: 'fruit', name: 'banana' },
{ category: 'vegetable', name: 'carrot' },
{ category: 'fruit', name: 'pear' },
{ category: 'vegetable', name: 'broccoli' },
];
const group = groupBy(items, (item) => item.category);
// {
// fruit: [
// { category: 'fruit', name: 'apple' },
// { category: 'fruit', name: 'banana' },
// { category: 'fruit', name: 'pear' },
// ],
// vegetable: [
// { category: 'vegetable', name: 'carrot' },
// { category: 'vegetable', name: 'broccoli' },
// ],
// };