javascript - 尝试用 var 而不是数字来简化 javascript。我这一切都错了吗?

标签 javascript if-statement getelementbyid var modulus

我试图让我的 FizzBu​​zz 使用变量模进行计算,以简化代码。他们应该数到 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/

相关文章:

sql-server - 为什么不能在select语句中使用if语句?有人知道另一种方法吗?

javascript - 从 html 正文中删除除 <a>、<br>、<b> 和 <img> 之外的所有 HTML 标记

javascript - 拖动时将 Google map 标记位置发送到 Flask

javascript - JS 中 Blob 对象和 File 对象有什么区别?

javascript - JS代码有什么问题,让我知道代码是否可以改进

ajax - getElementbyID 无法找到 AJAX 获取的 HTML 中的元素

javascript - 将 document.getElementById 存储在变量中?

javascript - 在 Vue 组件实例上更新 Prop 的正确方法是什么

Javascript OR 运算符在 if 语句中不起作用

java - 在 switch 语句中将值从一种情况传递到另一种情况