我有一个生成两个数字的函数。该函数具有一个循环来保持生成数字,直到找到两个其乘积平均为24的数字为止。这通常可以奏效,但偶尔会失败。
function randomBetween(min, max) {
var ceiling = max + 1;
return Math.floor(Math.random() * (ceiling - min)) + min;
}
function DOBINGenerateNonWhole() {
var random;
var random2;
do {
random = randomBetween(3, 36);
random2 = randomBetween(3, 36);
} while ((24 % (random * random2) != 0));
return {
random: random,
random2: random2,
}
}
var Span1 = DOBINGenerateNonWhole().random;
$('.Span1').html(Span1);
var Span2 = DOBINGenerateNonWhole().random2;
$('.Span2').html(Span2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="Span1"></div>
<div class="Span2"></div>
最佳答案
您正在运行DOBINGenerateNonWhole()
两次,这是导致问题的原因。 random
和random2
不是来自同一调用,因此没有理由将其乘积乘以24
如果您更新代码以存储结果,则它应该可以工作:
var result = DOBINGenerateNonWhole();
$('.Span1').html(result.random);
$('.Span2').html(result.random2);