Array#Shuffule
by bc_rikko
HTML
<h2>lodash</h2>
<div id="lodash"></div>
<h2>ES6</h2>
<div id="es6"></div>
<h2>ES5</h2>
<div id="es5"></div>
JavaScript
const values = [1,2,3,4,5,6,7,8,9,10];
// lodash
const shuffledByLodash = _.shuffle(values);
document.getElementById('lodash').append(shuffledByLodash.join(','));
// ES6
const shuffleByES6 = array => {
// deep copy
const ary = array.slice();
for (let i = ary.length - 1; 0 < i; i--) {
let r = Math.floor(Math.random() * (i + 1));
// ary[i] <-> ary[r]
[ary[i], ary[r]] = [ary[r], ary[i]];
}
return ary;
}
const shuffledByES6 = shuffleByES6(values);
document.getElementById('es6').append(shuffledByES6.join(','));
// ES5
var shuffleByES5 = function (array) {
// deep copy
var ary = array.slice();
for (var i = ary.length - 1; 0 < i; i--) {
var r = Math.floor(Math.random() * (i + 1));
// ary[i] <-> ary[r]
var temp = ary[i];
ary[i] = ary[r];
ary[r] = temp;
}
return ary;
};
var shuffledByES5 = shuffleByES5(values);
document.getElementById('es5').append(shuffledByES5.join(','));