es-toolkit/docs/ko/reference/array/chunk.md
2024-08-10 10:15:48 +09:00

2.1 KiB

chunk

배열을 정해진 길이에 맞게 더 작은 배열로 나눠요.

입력값으로 배열을 받아서, 정해진 길이를 따르는 더 작은 배열 여러 개로 나눠요. 입력 배열이 똑같은 길이로 나눠질 수 없다면, 나눠진 마지막 배열이 남은 요소들을 포함하게 돼요.

인터페이스

function chunk<T>(arr: T[], size: number): T[][];

파라미터

  • arr (T[]): 작은 배열들로 나눌 배열.
  • size (number): 작은 배열들의 길이. 양의 정수여야 해요.

반환 값

(T[][]): 최대 길이 size를 가지는 작은 배열들로 구성된 2차원 배열을 반환해요.

에러

size가 양의 정수가 아니면 에러를 던져요.

예시

import { chunk } from 'es-toolkit/array';

// 숫자의 배열을 최대 2의 길이를 가지는 더 작은 배열들로 쪼개요.
chunk([1, 2, 3, 4, 5], 2);
// Returns: [[1, 2], [3, 4], [5]]

// 문자열의 배열을 최대 3의 길이를 가지는 더 작은 배열들로 쪼개요.
chunk(['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3);
// Returns: [['a', 'b', 'c'], ['d', 'e', 'f'], ['g']]

사용해보기

::: sandpack

import { chunk } from 'es-toolkit/array';

console.log(chunk([1, 2, 3, 4, 5], 2));

:::

Lodash 호환성

es-toolkit/compat에서 chunk를 가져오면 lodash와 호환돼요.

  • size가 1보다 작으면 빈 배열을 반환해요.
  • size에 소수점이 있는 숫자를 제공하더라도, 정수로 내림해요.
import { chunk } from 'es-toolkit/compat';

chunk([1, 2, 3], 0); // Returns []

성능 비교

번들 사이즈 런타임 성능
es-toolkit 238 바이트 (92.4% 작음) 9,338,821 회 (11% 느림)
es-toolkit/compat 307 바이트 (90.2% 작음) 9,892,157 회 (5% 느림)
lodash-es 3,153 바이트 10,523,270 회