我看到这样一个函数:
function rand(x){
return Math.ceil(Math.random()*x);
}
//生成随机数组的一个扩展方法
Array.prototype.random=function(){
for(var i=(this.length-1);i>1;i--){
var j=rand(this.length-1);
var cache=this[i];
this[i]=this[j];
this[j]=cache;
}
}
//生成随机数字函数
我以为,上面的 i>1 应为 i>0 吧?循环到数组的第一个元素 即下标为 0 的那个才能终止吧?如果是 i>1,那循环到 下标为 1 的那个元素 不就停止了吗?
请大家指正。
function rand(x){
return Math.ceil(Math.random()*x);
}
//生成随机数组的一个扩展方法
Array.prototype.random=function(){
for(var i=(this.length-1);i>1;i--){
var j=rand(this.length-1);
var cache=this[i];
this[i]=this[j];
this[j]=cache;
}
}
//生成随机数字函数
我以为,上面的 i>1 应为 i>0 吧?循环到数组的第一个元素 即下标为 0 的那个才能终止吧?如果是 i>1,那循环到 下标为 1 的那个元素 不就停止了吗?
请大家指正。
sort(function(){return Math.random()-0.5})就已经实现了LZ你去看下Array对象的sort方法