2016/06/11

[JavaScript]配列の中身をランダムソート

JavaScriptを使って配列の中身をランダムにソートしたい場合はどうすればいいのだろうか?

JavaScript で配列のシャッフル
によると下記のコードでいけるみたい。

function shuffle(array) {
  var n = array.length, t, i;

  while (n) {
    i = Math.floor(Math.random() * n--);
    t = array[n];
    array[n] = array[i];
    array[i] = t;
  }

  return array;
}

var test_array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
shuffle(test_array);
ちなみに、このアルゴリズムはフィッシャー - イェーツのシャッフルと呼ばれるもので結構有名みたい。

0 コメント:

コメントを投稿