1. 数组乱序
利用sort,不好
- 传给sort一个比较函数,如果比较函数return值小于0,则表示a必须出现在b前面,否则在b后面
function shuffle(arr){
return arr.sort(function(){
return Math.random() > 0.5 ? -1 : 1;
}
}
复杂度为o(n)
- 每一次循环从前 len - i 个元素里随机一个位置,将这个元素和第 len - i 个元素进行交换,迭代直到 i = len - 1 为止。
function shuffle(arr){
var len=arr.length;
for(var i=0;i<len-1;i++){
var idx=Math.floor(Math.random()*(len-i));
var temp=arr[idx];
arr[idx]=arr[len-i-1];
arr[len-i-1]=temp;
}
return arr;
console.log(arr);
}
shuffle([1,2,3,4,5,6,7]);
生成10个20-50之间的随机数,存在数组中
//生成10个20-50之间的随机数,存在数组中
var arr=[55];
var num=0;
while(arr.length<=10){
var flag=true;
num=Math.round(Math.random()*30+20);
if(arr.length==0){
arr.push(num);
}else{
for(var i=0;i<arr.length;i++){
if(num==arr[i]){
flag=false;
}
}
if(flag){
arr.push(num);
}
}
}
console.log(arr);