UNPKG

@arrows/array

Version:
26 lines (25 loc) 807 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.aperture_ = void 0; const curry_1 = require("@arrows/composition/curry"); const _aperture_ = (chunkSize, arr) => { if (chunkSize <= 0) { throw new Error("Chunk size has to be greater than 0."); } const len = arr.length - chunkSize; const chunks = new Array(len < 0 ? 0 : len); for (let i = 0; i <= arr.length - chunkSize; i++) { chunks[i] = arr.slice(i, i + chunkSize); } return chunks; }; /** * Splits the array into overlapping chunks of a provided size (shifted by one). * * @param chunkSize Chunk size * @param arr Initial array * @returns New array of chunks */ const aperture_ = curry_1.curry(_aperture_); exports.aperture_ = aperture_; exports.default = aperture_;