我试图让我的 FizzBuzz 使用变量模进行计算,以简化代码。他们应该数到 140,并显示 True 或 False。
我之前的“if”语句如下所示(并且有效):
if (i % 3 === 0 && i % 5 === 0)
我见过的例子是这样的:
if (checkDivision(iCounter, secondDivisor))
我已经为计数器、两个除数和模数检查器创建了变量,但我似乎无法让它工作。
感谢您的帮助,因为我对 javascript 和编码还很陌生。
这是迄今为止我的代码:
function clickAlert2() {
var firstDivisor = 3;
var secondDivisor = 5;
for (var iCounter = 1; iCounter <= 140; iCounter++) {
var checkDivision =
iCounter % firstDivisor === 0 || iCounter % secondDivisor === 0;
if (checkDivision(iCounter, firstDivisor)) {
document.getElementById("ngList").innerHTML +=
checkDivision + ". True [3] <br>";
} else if (checkDivision(iCounter, secondDivisor)) {
document.getElementById("ngList").innerHTML +=
checkDivision + ". True [5] <br>";
} else {
document.getElementById("ngList").innerHTML +=
checkDivision + ". False <br>";
}
}
}
编辑---------------------------------------------- ------------------------------------------
好吧,现在我唯一的问题是应该能被五整除的数字,却显示为能被三整除,而这显然是不可能的:
function clickAlert2() {
function checkDivision(counter) {
var firstDivisor = 3,
secondDivisor = 5;
return (counter % firstDivisor === 0) || (counter % secondDivisor === 0);
};
for (var iCounter = 1; iCounter <= 140; iCounter++) {
if (checkDivision(iCounter)) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [3] <br>";
} else if (checkDivision(iCounter)) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [5] <br>";
} else {
document.getElementById("ngList").innerHTML +=
iCounter + ". False <br>";
}
}
}
最佳答案
我可以从您的代码段中意识到您正在尝试检测 1 - 140 之间可被 3(firstDivisor
) 和 5(secondDivisor
) 整除的数字。你需要一个遍历 1 -140 的循环和一个函数 (checkDivision
) 来确定给定的数字是能被 3 和 5 整除的数字。
function clickAlert2() {
function checkDivision(counter, divisor) {
return (counter % divisor === 0);
};
var firstDivisor = 3,
secondDivisor = 5;
for (var iCounter = 1; iCounter <= 140; iCounter++) {
//check divsible by both divisors
if (checkDivision(iCounter, firstDivisor) && checkDivision(iCounter, )) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [" + firstDivisor + " " + secondDivisor + "] <br>";
}
//check divible by first divisor
else if (checkDivision(iCounter, firstDivisor)) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [" + firstDivisor + "] <br>";
}
//check divible by second divisor
else if (checkDivision(iCounter, secondDivisor)) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [" + secondDivisor + "] <br>";
}
//cannot divisible either divisors
else {
document.getElementById("ngList").innerHTML +=
iCounter + ". False <br>";
}
}
}
关于javascript - 尝试用 var 而不是数字来简化 javascript。我这一切都错了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52529449/