//抽样函数 10 11
_.sample = function(array, n){
if(n == null){
return array[_.random(array.length-1)];//输出一个值;
}
var sample = _.clone(array);
var length = sample.length;
var last = length-1;
n = Math.max(Math.min(n, length),0);//防止n为负数=>n=0或者n>length,n=length;
for(var index = 0; index<n; index++){//循环n次;
//随机数 index n
var rand = _.random(index, last);//random区间不断变化;
var temp = sample[index];
sample[index] = sample[rand]; //交换
sample[rand] = temp; //交换
}
return sample.slice(0, n);
}
// 返回一个 [min, max] 范围内的任意整数
_.random = function(min, max) {
if (max == null) {//只传入一个值;
max = min;
min = 0;
}
// 3-6 3 0-1*4 !0 !4
return min + Math.floor(Math.random() * (max - min+1));//随机一个值;
};
_.shuffle = function(array){
//array.length
return _.sample(array,Infinity);//无穷大
}