JavaScriptの配列をシャッフルしようと思ってお手軽な方法を調べてみました。
Destructuring assignment
Destructuring assignmentの使い方は次のような感じです。
a = [ 1, 2, 3, 4, 5 ];
[a[1], a[2]] = [a[2], a[1]];
結果はa = [ 1, 3, 2, 4, 5 ]
となります。
シャッフルの実装
ということで、これを複数回繰り返すと配列のシャッフルができるという仕組みです。
for(i = 0; i < 5; ++i) {
j = Math.floor(Math.random()*a.length);
[a[i], a[j]] = [a[j], a[i]];
}
もう少し効率的な方法もあるかなと思いますが、Destructuring assignment自体は便利そうなので使っていこうかなと思います。
リンク
Destructuring assignment – JavaScript | MDN
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment