尝试使用 var 而不是数字来简化 javascript。我这样做是不是错了?
Trying to simplify javascript with var instead of numbers. Am I going about this all wrong?
我正在尝试让我的 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>";
}
}
}
编辑---------------------------------------- ------------------------------
好吧,现在我唯一的问题是应该被 5 整除的数字显示为可以被 3 整除,而这显然是不可能的:
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>";
}
}
}
您的 checkDivision 是一个布尔变量,而不是一个函数。所以你只需将它作为 if 和 else if 语句中的表达式传递。
if(checkDivision){.....}
此外,对于 fizzbuzz,您可以制作这样的函数。
function fizzbuzz(num){
if(num % 3 === 0 && num % 5 === 0)
return "FizzBuzz";
else if(num % 3 === 0)
return "Fizz";
else if(num % 5 === 0)
return "Buzz";
else return "none";
}
现在您可以通过比较此函数返回的字符串来准确了解它是 fizz、Buzz 还是 fizzbuzz
我可以从您的代码段中了解到您正在尝试检测 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>";
}
}
}
这是您要找的吗?
function clickAlert2() {
var firstDivisor = 3;
var secondDivisor = 5;
var checkDivision = function (counter, divisor) {
return counter % divisor === 0;
};
for (var iCounter = 1; iCounter <= 140; iCounter++) {
if (checkDivision(iCounter, firstDivisor)) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [3] <br>";
} else if (checkDivision(iCounter, secondDivisor)) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [5] <br>";
} else {
document.getElementById("ngList").innerHTML +=
iCounter + ". False <br>";
}
}
}
clickAlert2()
<div id="ngList"></div>
我正在尝试让我的 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>";
}
}
}
编辑---------------------------------------- ------------------------------
好吧,现在我唯一的问题是应该被 5 整除的数字显示为可以被 3 整除,而这显然是不可能的:
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>";
}
}
}
您的 checkDivision 是一个布尔变量,而不是一个函数。所以你只需将它作为 if 和 else if 语句中的表达式传递。
if(checkDivision){.....}
此外,对于 fizzbuzz,您可以制作这样的函数。
function fizzbuzz(num){
if(num % 3 === 0 && num % 5 === 0)
return "FizzBuzz";
else if(num % 3 === 0)
return "Fizz";
else if(num % 5 === 0)
return "Buzz";
else return "none";
}
现在您可以通过比较此函数返回的字符串来准确了解它是 fizz、Buzz 还是 fizzbuzz
我可以从您的代码段中了解到您正在尝试检测 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>";
}
}
}
这是您要找的吗?
function clickAlert2() {
var firstDivisor = 3;
var secondDivisor = 5;
var checkDivision = function (counter, divisor) {
return counter % divisor === 0;
};
for (var iCounter = 1; iCounter <= 140; iCounter++) {
if (checkDivision(iCounter, firstDivisor)) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [3] <br>";
} else if (checkDivision(iCounter, secondDivisor)) {
document.getElementById("ngList").innerHTML +=
iCounter + ". True [5] <br>";
} else {
document.getElementById("ngList").innerHTML +=
iCounter + ". False <br>";
}
}
}
clickAlert2()
<div id="ngList"></div>