Skip to content

windowed() function

指定したサイズのスライディングウィンドウを Iterable/AsyncIterable として返します。ウィンドウは重なり合い、各ウィンドウは前のウィンドウより 1 要素後ろから始まります。要素数が size より少ない場合は何も生成されません。重ならない分割である chunk とは異なり、連続する 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]]

Open Source Code

Released under the Apache-2.0 License.