87,990
社区成员
发帖
与我相关
我的任务
分享
/**
* 获取不重复的随机数
* @param count:生成随机数个数
* @param range:数值范围
*/
function getRandom(count,range){
count = count || 1,
range = range || [1,count + 1];
min = range[0],
max = range[1];
unique = arguments[2] || {},
result = arguments[3] || [];
var num = Math.floor(Math.random() * (max - min) + min);
if(result.length < count){
if(!unique[num]){
result.push(num);
unique[num] = 1;
}
getRandom(count,range,unique,result);
}
return result;
}
var randomList1 = getRandom(10);
var randomList2 = getRandom(10,[100,200]);
console.log(randomList1);
console.log(randomList2);
// 返回false或者和已存在数都不重复的数
var getRandom=function(arr,len,min,max){
var temp= parseInt(Math.round(Math.random()*(max-min)))+min;
if(arr.length!=0){
for(var j=0;j<arr.length;j++){
if(temp==arr[j]){
return false;
}
}
}
return temp;
}
// 声明一个数组
var arr=[];
var func=function(len,min,max){
for(var i=0;;i++){
lenths=arr.length | 0;
if(lenths<len){
// 获取随机数并判断是否已经存在
var rand=getRandom(arr,len,min,max);
if(!!rand){
arr.push(rand);
}
}else{
break; // 如果取值完成则退出循环
}
}
return arr;
}
// 三个参数分别表示,获取个数,最大值,最小值
func(10,1,10);
var s = new Set();
[2, 3, 5, 4, 5, 2, 2].map(x => s.add(x));
for (let i of s) {
console.log(i);
}
// 2 3 5 4
function getArrayItems(arr,num){
var temp_array = new Array();
for(var index in arr){
temp_array.push(arr[index]);
}
var return_array = new Array();
for(var i= 0; i< num; i++){
if(temp_array.length>0){
var arrIndex = Math.floor(Math.random()*temp_array.length);
return_array[i] = temp_array[arrIndex];
temp_array.splice(arrIndex,0);
}else{
break;
}
}
return return_array;
}
var my_array = new Array();
for (var i=0; i<80; i++){
my_array[i]= i+",";
}
my_array = getArrayItems(my_array,20);
// for(var i=0;i<my_array.length;i++){
// document.writeln(my_array[i]);
// }
var s = new Set();
my_array.map(x => s.add(x));
for (let i of s) {
document.writeln(i);
}