UNPKG

froebel

Version:
43 lines (36 loc) 928 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.takeGenerator = takeGenerator; exports.takeList = void 0; /** * Takes `n` elements from the iterable `list` and returns them as an array. * * @example * ``` * take(5, repeat(1, 2)) // -> [1, 2, 1, 2, 1] * take(3, [1, 2, 3, 4]) // -> [1, 2, 3] * take(3, [1, 2]) // -> [1, 2] * ``` */ const takeList = (n, list) => [...takeGenerator(n, list)]; /** * Takes `n` elements from the iterable `list` and returns them as a generator. * * @example * ``` * [...take(5, repeat(1, 2))] // -> [1, 2, 1, 2, 1] * [...take(3, [1, 2, 3, 4])] // -> [1, 2, 3] * [...take(3, [1, 2])] // -> [1, 2] * ``` */ exports.takeList = takeList; function* takeGenerator(n, list) { let i = 0; for (const el of list) { if (i++ >= n) return; yield el; } } module.exports = Object.assign(exports.default || {}, exports);