scan() function
왼쪽에서 순차적으로 축소된 값의 Iterable/AsyncIterable을 반환합니다. reduce와 유사합니다.
Signature:
typescript
declare function scan<A extends readonly []>(
f: Arrow,
iterable: A,
): IterableIterator<never>;Example
ts
const iter = scan((acc, cur) => acc * cur, 1, [1, 2, 3, 4]);
iter.next(); // {value: 1, done:false}
iter.next(); // {value: 1, done:false}
iter.next(); // {value: 2, done:false}
iter.next(); // {value: 6, done:false}
iter.next(); // {value: 24, done:false}
iter.next(); // {value: undefined, done: true}
// with pipe
pipe(
[1, 2, 3, 4],
scan((acc, cur) => acc * cur),
toArray,
); // [1, 2, 6, 24]