Skip to content

chunk (Iterator) ​

이터레이터의 요소들을 주어진 길이의 배열로 지연 평가 방식으로 묶어요.

typescript
const chunks = chunk(source, size);

사용법 ​

chunk(source, size) ​

요소 스트림을 고정된 크기의 묶음으로 처리하고 싶을 때 chunk를 사용하세요. 예를 들어 레코드를 데이터베이스에 한 번에 100개씩 저장할 때요. 각 묶음은 요청될 때만 만들어지기 때문에, 네이티브 take처럼 일찍 멈추는 헬퍼로 범위를 제한하면 무한 이터레이터에도 사용할 수 있어요. 소스 길이가 size의 정확한 배수가 아니면 마지막 묶음은 남은 요소들을 담기 때문에 더 짧을 수 있어요.

typescript
import { chunk, range } from 'es-toolkit/iterator';

// 요소를 둘씩 묶어요. 남은 요소는 더 짧은 마지막 묶음이 돼요.
chunk([1, 2, 3, 4, 5].values(), 2).toArray();
// 반환 값: [[1, 2], [3, 4], [5]]

// 무한 소스를 take로 제한해서 묶음 단위로 처리해요.
chunk(range(0, Infinity), 100).take(2).toArray();
// 반환 값: [[0, 1, ..., 99], [100, 101, ..., 199]]

파라미터 ​

  • source (Iterator<T>): 묶음으로 나눌 이터레이터예요.
  • size (number): 각 묶음의 길이예요. 0보다 큰 정수여야 해요.

반환 값 ​

(IteratorObject<T[], undefined>): 최대 size개 요소를 가진 배열들을 내보내는 지연 평가 이터레이터예요. 모든 네이티브 이터레이터 헬퍼(map, take, toArray, ...)를 갖추고 있어서 이어서 체이닝할 수 있어요.

에러 ​

size가 0보다 큰 정수가 아니면 에러를 던져요.

MIT 라이선스에 따라 배포됩니다.