我想随机洗牌一个烬阵列没有太大的成功。Ember.js洗牌阵列
到目前为止,我用这个片段洗牌数组:
Array.prototype.shuffle = function() {
var len = this.length;
var i = len;
while (i--) {
var p = parseInt(Math.random()*len,10);
var t = this[i];
this[i] = this[p];
this[p] = t;
}
};
而且这个片段来比较两个数组:
Array.prototype.compareTo = function (array2){
var array1 = this;
var difference = [];
$.grep(array2, function(el) {
if ($.inArray(el, array1) == -1) difference.push(el);
});
if(difference.length === 0){
var $i = 0;
while($i < array1.length){
if(array1[$i] !== array2[$i]){
return false;
}
$i++;
}
return true;
} else {
return false;
}
}
我用这个,只要它是洗牌我的数组与我开始时相同:
while(array1.compareTo(array2) === true){
array1.shuffle();
}
但是这个循环是一个无限循环,我似乎无法找到o为什么...
感谢您的时间。
看看这个:http://stackoverflow.com/questions/2450954/how-to-randomize-a-javascript-array –