iteragain
Version:
Javascript Iterable/Iterator/Generator-function utilities.
18 lines • 634 B
JavaScript
;
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.floor(seed * (i + 1));
[values[i], values[j]] = [values[j], values[i]];
}
return values[Symbol.iterator]();
}
exports.default = shuffle;
//# sourceMappingURL=shuffle.js.map