JavaScriptで Array のシャッフルはどうやるのが良いでしょうか?
[1, 2, 3, 4].shuffle() // [4, 1, 3, 2]
というようなものです。
追記:ライブラリに依存せずにできるとベターです。
JavaScriptで Array のシャッフルはどうやるのが良いでしょうか?
[1, 2, 3, 4].shuffle() // [4, 1, 3, 2]
というようなものです。
追記:ライブラリに依存せずにできるとベターです。
underscore.jsで実装されているFisher–Yates shuffleはごく簡単なアルゴリズムです。
Array.prototype.shuffle=function() {
var a=this.slice();
for (var i=a.length-1;i>=0;i--) {
var r=Math.floor(i*Math.random());
var tmp=a[i];
a[i]=a[r];
a[r]=tmp;
};
return a;
};
function shuffle(a) {
for (var i=a.length-1;i>=0;i--) {
var r=Math.floor(i*Math.random());
var tmp=a[i];
a[i]=a[r];
a[r]=tmp;
}
return a;
}
この質問への回答やコメントをメールでお知らせします。