add ES6 implementation of a shuffle function
This commit is contained in:
parent
bb2aeaa777
commit
15072aaa22
@ -30,24 +30,15 @@ export function lightenDarkenColor(col,amt) {
|
|||||||
return (usePound?"#":"") + (g | (b << 8) | (r << 16)).toString(16);
|
return (usePound?"#":"") + (g | (b << 8) | (r << 16)).toString(16);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shuffles array in place. ES6 version
|
||||||
|
* @param {Array} a items An array containing the items.
|
||||||
|
*/
|
||||||
export function shuffle(array) {
|
export function shuffle(array) {
|
||||||
// https://stackoverflow.com/a/2450976/6495043
|
//https://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-array?noredirect=1&lq=1
|
||||||
// Awesomeness: https://bost.ocks.org/mike/shuffle/
|
|
||||||
|
|
||||||
var currentIndex = array.length, temporaryValue, randomIndex;
|
for (let i = array.length - 1; i > 0; i--) {
|
||||||
|
let j = Math.floor(Math.random() * (i + 1));
|
||||||
// While there remain elements to shuffle...
|
[array[i], array[j]] = [array[j], array[i]];
|
||||||
while (0 !== currentIndex) {
|
|
||||||
|
|
||||||
// Pick a remaining element...
|
|
||||||
randomIndex = Math.floor(Math.random() * currentIndex);
|
|
||||||
currentIndex -= 1;
|
|
||||||
|
|
||||||
// And swap it with the current element.
|
|
||||||
temporaryValue = array[currentIndex];
|
|
||||||
array[currentIndex] = array[randomIndex];
|
|
||||||
array[randomIndex] = temporaryValue;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return array;
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user