我不知道为什么这不起作用,应该返回一个具有四个不同值的数组,但是它没有
$(document).ready(function (e) {
var randomNumbers = new Array();
for (var i = 0; i < 4; i++) {
randomNumbers[i] = Math.floor((Math.random() * 9) + 1);
while ($.inArray(randomNumbers[i], randomNumbers) !== -1) {
randomNumbers[i] = Math.floor((Math.random() * 9) + 1);
}
}
for (var i = 0; i < randomNumbers.length; i++) {
if ($('#output').html() !== '') {
var existingOutput = $('#output').html();
$('#output').html(existingOutput + randomNumbers[i]);
} else {
$('#output').html(randomNumbers[i]);
}
}
});
最佳答案
如果生成一个数字并将其放入数组中,您是否认为$.inArray()
会告诉您呢?
您的while
循环肯定会挂起。当然,数组的成员(randomNumbers[i]
)始终位于数组中。实际上,当调用$.inArray()
以查看randomNumbers[i]
是否在数组中时,它会返回i
(如果没有其他地方,在这种情况下就不可能)。您的循环不会超过第一个数字,因此它将为0
。