🛠️ 처음부터 만드는 GroupBy — 배열을 기준에 따라 그룹화하기
문제 상황
같은 카테고리의 데이터들을 묶거나, API 응답을 분류해야 할 때가 있죠.
```typescript
const users = [
{ id: 1, role: 'admin' },
{ id: 2, role: 'user' },
{ id: 3, role: 'admin' },
];
// 역할별로 그룹화하고 싶다면?
```
구현
```typescript
function groupBy
array: T[],
keyFn: (item: T) => K
): Record
return array.reduce((acc, item) => {
const key = keyFn(item);
if (!acc[key]) {
acc[key] = [];
}
acc[key].push(item);
return acc;
}, {} as Record
}
```
사용 예시
```typescript
const grouped = groupBy(users, user => user.role);
// { admin: [{id: 1, ...}, {id: 3, ...}], user: [{id: 2, ...}] }
// 복잡한 키도 가능
const byMonth = groupBy(
transactions,
tx => new Date(tx.date).toISOString().slice(0, 7)
);
```
실무 팁
👁 0 views
Comments (0)
💬
No comments yet.
Be the first to comment!