UNPKG

iteragain

Version:

Javascript Iterable/Iterator/Generator-function utilities.

18 lines 660 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.shuffle = shuffle; const toArray_1 = require("./toArray"); /** * Collects all values from the input iterator, then shuffles the order of it's values. * @param seed A seed between 0 and 1. */ function shuffle(arg, seed = Math.random()) { const values = (0, toArray_1.default)(arg); for (let i = values.length - 1; i > 0; i--) { const j = Math.min(i, Math.max(0, Math.floor(seed * (i + 1)))); [values[i], values[j]] = [values[j], values[i]]; } return values[Symbol.iterator](); } exports.default = shuffle; //# sourceMappingURL=shuffle.js.map