froebel
Version:
TypeScript utility library
43 lines (36 loc) • 928 B
JavaScript
;
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);