javascript / expert
Snippet
Custom Array Chunking via Iterator Protocol Implementation
Implements the ECMAScript iterable protocol (Symbol.iterator) using generator methods to partition large arrays lazily without upfront full memory duplication.
snippet.js
javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
export class ChunkedIterable {constructor(array, chunkSize) {this.array = array;this.chunkSize = chunkSize;}*[Symbol.iterator]() {for (let i = 0; i < this.array.length; i += this.chunkSize) {yield this.array.slice(i, i + this.chunkSize);}}}export function processBatch(dataset, size) {const batcher = new ChunkedIterable(dataset, size);return Array.from(batcher);}
nextjs
Breakdown
1
*[Symbol.iterator]() {
Defines the standard ES iterable contract using a generator method signature denoted by the asterisk.
2
yield this.array.slice(i, i + this.chunkSize);
Yields sliced array chunks lazily on demand during iterative enumeration.
3
return Array.from(batcher);
Consumes the custom iterable object using Array.from to build an array of chunked sub-arrays.