您好我有这样的代码:
$('#Generator_Rzutow').click (function(){
var val1 = $('#rzucane').val();
var val2 = $('#zachowywane').val();
var zbior = [];
var limit = 10;
alert (val1);
alert (val2);
for (var i=0; i<val1;i++){
var wynik_rzutu = 1+Math.floor(Math.random()*10);
if (wynik_rzutu<limit){
zbior.push(wynik_rzutu);
} else {
limit = limit+10;
wynik_rzutu = wynik_rzutu+1+Math.floor(Math.random()*10);
if (wynik_rzutu<limit){
zbior.push(wynik_rzutu);
} else {
limit = limit+10;
wynik_rzutu = wynik_rzutu+1+Math.floor(Math.random()*10);
zbior.push(wynik_rzutu);
}
}
}
$('#wypisz').text (zbior);
});
我的问题是,当它为'10'时,它有时会向数组添加10,当它应该随机化另一个时间并将其添加到prev值时。
我的第二个问题是。如何让它随机化另一个值并将其广告为prev,只要它随机化10个。对于ex:所以它可以得到数字74,当它随机化7x10和4,然后它通过它到数组。
我知道我应该在垂坠的时候做到这一点,但我无法解决问题,所以我把'if'
答案 0 :(得分:1)
第一个问题是您不会在每次迭代时重置限制。您从限制10开始,然后当生成大于10的第一个数字时,限制将增加到20,并且所有后续数字将与20进行比较,以查看它们是否已添加到阵列中或重新生成(并且它们将全部生成被添加到数组中,因为它们都小于20)。
关于你的第二个问题,我认为这段代码的行为是相应的:
for (var i=0; i<val1;i++){
var wynik_rzutu = 0, limit = 0;
while (wynik_rzutu >= limit) {
wynik_rzutu += 1+Math.floor(Math.random()*10);
limit += 10;
}
zbior.push(wynik_rzutu);
}
您还可以添加一个计数器以防止它进入无限循环(例如,如果Math.random()总是返回0.9),但我怀疑它是您真正需要的。