UNPKG

es-toolkit

Version:

A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.

21 lines (17 loc) 629 B
'use strict'; Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); function windowed(arr, size, step = 1, { partialWindows = false } = {}) { if (size <= 0 || !Number.isInteger(size)) { throw new Error('Size must be a positive integer.'); } if (step <= 0 || !Number.isInteger(step)) { throw new Error('Step must be a positive integer.'); } const result = []; const end = partialWindows ? arr.length : arr.length - size + 1; for (let i = 0; i < end; i += step) { result.push(arr.slice(i, i + size)); } return result; } exports.windowed = windowed;