大家好,我在尝试设置此forloop时遇到问题。但是我失败了

如果您看这张照片javascript - Forloop困惑-LMLPHP

我需要根据它们所在的部分,使这些小点与大数字具有相同的颜色。

我通过for循环将元素添加到首页

for(i = 1; i < 100 ; i++){

 console.log("Number " + i + " with the color red")

}

因此,例如1-5、11-15、21-25、31-35、41,45将为红色

我需要使用正则表达式吗?

最佳答案

您可以使用以下函数作为输入,输入0到99之间的一个整数并输出段号(1到4):

((n % 10 > 4) ? 1 : 2) + ((n > 49) ? 2 : 0)

最终结果由两部分组成:
  • ((n % 10 > 4) ? 1 : 2)-此部分检查数字是以0-4还是5-9结尾。在前一种情况下,输出1。在后一种情况下,输出2。
  • ((n > 49) ? 2 : 0)-如果n为50或以上,则将2加到最终结果中(以区分1,2节和3,4节)。

  • 以下示例中的getSectionNumber(n)函数实现了此公式:

    var table = document.querySelector('table tbody');
    
    // n is a number between 0 and 99
    // output is a section (1 - 4)
    function getSectionNumber(n) {
      return ((n % 10 > 4) ? 1 : 2) + ((n > 49) ? 2 : 0);
    }
    
    var sectionColors = {
      1: 'darkred',
      2: 'darkblue',
      3: 'darkgreen',
      4: 'yellow'
    };
    
    for(var i = 0; i < 10; i++) {
      var row = document.createElement('tr');
      table.appendChild(row);
      for(var j = 0; j < 10; j++) {
        var cell = document.createElement('td');
        var cellId = i*10 + j
        cell.textContent = cellId;
        cell.style.backgroundColor = sectionColors[getSectionNumber(cellId)];
        row.appendChild(cell);
      }
    }
    <table>
      <tbody>
      </tbody>
    </table>

    关于javascript - Forloop困惑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40188961/

    10-09 23:01