我有一个代码,可在0-9之间产生5个唯一的随机数。但是我不希望第一个数字为零。
我该如何解决?
var arr = []
while(arr.length < 5){
var randomnumber = Math.floor(Math.random()*10);
if(arr.indexOf(randomnumber) > -1) continue;
arr[arr.length] = randomnumber;
}
document.write(arr);
答案 0 :(得分:0)
这很简单,您的电话号码不会重复。如果第一个数字为0
,只需将其与随机索引值交换即可。在这里,我使用了索引3
。
var arr = []
while (arr.length < 5) {
var randomnumber = Math.floor(Math.random() * 10);
if (arr.indexOf(randomnumber) > -1) continue;
arr[arr.length] = randomnumber;
}
if (arr[0] === 0) {
arr[0] = arr[3];
arr[3] = 0;
}
console.log(arr);
.as-console-wrapper {top: 0; height: 100%;}
测试创建100个不同的案例:
var all = [];
var arr = [];
for (var i = 0; i < 100; i++) {
arr = [];
while (arr.length < 5) {
var randomnumber = Math.floor(Math.random() * 10);
if (arr.indexOf(randomnumber) > -1) continue;
arr[arr.length] = randomnumber;
}
if (arr[0] === 0) {
arr[0] = arr[3];
arr[3] = 0;
}
all.push(arr.join(", "));
}
console.log(all);
.as-console-wrapper {top: 0; height: 100%;}
答案 1 :(得分:0)
您可以在开始时插入零校验,然后继续。
var array = [],
randomnumber;
while (array.length < 5) {
randomnumber = Math.floor(Math.random() * 10);
if (array.indexOf(randomnumber) > -1 || !array.length && !randomnumber) continue;
array.push(randomnumber);
}
console.log(array);