大家好,我在尝试设置此forloop时遇到问题。但是我失败了
如果您看这张照片
我需要根据它们所在的部分,使这些小点与大数字具有相同的颜色。
我通过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/