我正在尝试创建一个长度为78的随机数的数组。我不知道如何搜索整个数组并检查最后一个条目是否重复并删除它。有人请帮忙。
function initAll() {
var balls = LoadInBingoBalls();
for(i=0; i < balls.length;i++)
{
(balls[i]);
}
}
function setSquare (numSquare) {
var BingoSquare = "square" + numSquare.toString();
document.getElementById(BingoSquare).innerHTML = RandomNumber(MaxNo);
}
var RandomNumber = function (max) {
return Math.floor(Math.random() * max) + 1;
}
function LoadInBingoBalls(){
var first = 0;
var last = 78;
var random;
var bag = [];
//Heres the part i get confused!
for (var i = first; i <= last; i++) {
do
bag.push(i) = setSquare(i);
while(bag.indexOf(i) !== -1)
}
return bag;
}
}
答案 0 :(得分:2)
此函数将创建数组并在推送之前检查它是否包含数字:
工作示例:https://jsbin.com/cabofa/1/edit?js,console
function randNum (max) {
return Math.floor(Math.random() * max) + 1;
}
function makeArray(n) {
var arr = [];
while (arr.length < n) {
var random = randNum(n);
if (arr.indexOf(random) === -1) {
arr.push(random);
}
}
return arr;
}
答案 1 :(得分:0)
创建一个包含所有可能值的数组:
function shuffle(a) {
var j, x, i;
for (i = a.length; i; i -= 1) {
j = Math.floor(Math.random() * i);
x = a[i - 1];
a[i - 1] = a[j];
a[j] = x;
}
return a;
}
var shuffled = shuffle(possibles);
将该值数组随机播放:
var popped = shuffled.pop();
console.log(popped);
现在从新数组中弹出一个值以从中获取随机元素:
for(i=0; i<shuffled.length; i++) {
console.log(shuffled.pop());
}
您可以根据需要多次调用pop(),直到数组为空,这将返回undefined。例如:
{{1}}