windowed() function
以 Iterable/AsyncIterable 返回给定大小的滑动窗口。窗口相互重叠,每个窗口比前一个窗口晚一个元素开始。元素数量少于 size 时不产生任何内容。与不重叠分组的 chunk 不同,windowed 产生每个连续 size 个元素的区间。
Signature:
typescript
function windowed<T>(
size: number,
iterable: Iterable<T>,
): IterableIterator<T[]>;
function windowed<T>(
size: number,
iterable: AsyncIterable<T>,
): AsyncIterableIterator<T[]>;Example
ts
const iter = windowed(2, [1, 2, 3, 4]);
iter.next(); // {done: false, value: [1, 2]}
iter.next(); // {done: false, value: [2, 3]}
iter.next(); // {done: false, value: [3, 4]}
iter.next(); // {done: true, value: undefined}
pipe([1, 2, 3, 4, 5], windowed(3), toArray); // [[1, 2, 3], [2, 3, 4], [3, 4, 5]]