Javascript中如何得到一个元素为不重复随机数的数组

2024-11-23 04:13:50
推荐回答(5个)
回答(1):

随机替换位置就行了,先初始化数组,之后进行对数组中元素的位置进行随机交换就行了。
var array=[];
for(var i=1;i<=18;i++) array[i]=i;
for(var i=0;i var r=parseInt(Math.random()*array.length);
var v=array[i];array[i]=array[r];array[r]=v;
}
原理类似。

回答(2):

var arr = [];
for(var i=1;i<19;i++){
arr.push(i);
}
function GenerateRandomNumber(range){
return parseInt(Math.random()*range);//随机生成一个0到range的数字
}
function RegroupArr(arr){
if (arr.length <= 1) return arr;
var backupArr = [].concat(arr);//备份原来的数组,后面的操作会对数组进行修改
var result = [];
var r = GenerateRandomNumber(backupArr.length - 1);//生成0到length-1之间的随机数
result = result.concat(backupArr.splice(r,1));//从原来的数组中删除随机数位置的数字并存到结果中
result = result.concat(RegroupArr(backupArr));//回调本函数,对删除随机数后剩下的数组进行排序
return result;
}

回答(3):

回答(4):

var rand = 0;
var newPic = [];
var pic = [1,2,3] //length = 18
for ( var i=0; i<18; i++ ){
rand = Math.floor(Math.random()*19);
newPic.push(pic[rand-1].slice());
}
alert(newPic);

回答(5):

不知道