数组随机排序

方案一:

function randomArr1(arr,num){
var result = [],
len = arr.length;

for(var i =0; i < len;i++){
var t = Math.floor(Math.random() * arr.length);
result.push(arr.splice(t,1)[0]);
}

if(num >= len) return result;
return result.slice(0,num);
}

方案二:
function randomArr2(arr,num){
var result = [],
len = arr.length;

for(var i =0; i < len;i++){
var t = Math.floor(Math.random() * arr.length);
result.push(arr[t]);

var left = arr.slice(0,t),
right = arr.slice(t + 1,arr.length);

arr = left;
arr.push.apply(arr,right);
}

if(num >= len) return result;
return result.slice(0,num);
}
posted @ 2013-08-09 15:46  chenkychen  阅读(243)  评论(0编辑  收藏  举报