你好,我需要一个阵列无序。我尝试过这样的事情:
var letras = ['a', 'e', 'i', 'o', 'u'];
function disorder(p){
for(i=0;i<100;i++){
pos = Math.random()*p.length;
temp=p[pos];
p.splice(pos,1);
p.push(temp);
}
}
但它不起作用,我不确定是否因为删除而具有内存效率。
答案 0 :(得分:0)
您需要一个整数作为索引。
pos = Math.random() * p.length | 0;
bitwise or将值转换为整数。
function disorder(p) {
var i, pos, temp;
for (i = 0; i < 100; i++) {
pos = Math.random() * p.length | 0;
temp = p[pos];
p.splice(pos, 1);
p.push(temp);
}
}
var letras = ['a', 'e', 'i', 'o', 'u'], p = []
disorder(letras);
document.write('<pre>' + JSON.stringify(letras, 0, 4) + '</pre>');
答案 1 :(得分:0)
如何进行随机排序?
var letras = ['a', 'e', 'i', 'o', 'u'];
function disorder(arr, entropy){
var disorderedArr = arr.sort(function(a, b) {
return Math.floor(Math.random() * entropy);
});
return disorderedArr;
}
var disorderedLetras = disorder(letras, 10);
console.log(disorderedLetras);
document.write('<pre>' + JSON.stringify(disorderedLetras, 0, 4) + '</pre>');
&#13;
虽然可能没有统计上的活力,但这可以做你想要的,并让你控制随机事物的实际情况。