JavaScriptの分割代入を使って配列をシャッフル

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

コメントを残す

メールアドレスが公開されることはありません。