使用For循环[Javascript]简化IF..Else语句
Simplify IF...Else Statement with For Loop [Javascript]
上下文:我正在创建一个内容表,以通知用户他们已经完成/访问的页面。
下面的if…else语句(本身)正在工作,但我想使用for循环中的"i"计数器为其他30章生成检查。
该脚本将首先加载本地存储,其中包含表示已访问/未访问的值1或0,并将该数据传输到变量chap1check中。根据结果,内容表应该向用户显示哪个页面已经被访问或没有被访问。
我不确定我需要做什么,但理论上,我需要用"i"的值替换所有的"chap1…"。
<script type="text/javascript">
var i;
for (i = 1; i <=31; i++){
var chap1Check = localStorage.getItem("chap1Status");
if(chap1Check == "1"){
document.getElementById('chap1Completion').innerHTML = "Completed";
}else{
document.getElementById('chap1Completion').innerHTML = "Incomplete";
}
}
</script>
只需将数字之前的字符串部分与数字(i
)连接,然后连接数字之后的字符串部分。
for (var i = 1; i <= 31; i ++){
var chapCheck = localStorage.getItem("chap" + i + "Status");
document.getElementById('chap' + i + 'Completion').textContent = chapCheck == "1" ? "Completed" : "Incomplete";
}
以下代码将起作用但是,您只需将数组存储在本地存储中,然后通过索引数组来访问它会更干净。此外,还可以研究在for循环上使用map
函子。
还要注意,您应该在for循环中内联i
的声明,如下所示。否则,您可能会与将来在for循环中使用i
发生冲突。
for (var i = 1; i <=31; i++){
var chapterChecker = localStorage.getItem("chap"+i+"Status");
if(chap1Check == "1"){
document.getElementById('chap'+i+'Completion').innerHTML = "Completed";
}else{
document.getElementById('chap'+i+'Completion').innerHTML = "Incomplete";
}
}
使用es6模板字符串的解决方案可以是这个
for (var i = 1; i <=31; i++){
let content = '';
if(localStorage.getItem(`chap${i}Status`) == "1"){
content = "Completed";
}else{
content = "Incomplete";
}
document.getElementById(`chap${i}Completion`).innerHTML = content;
}
相关文章:
- 通过找到一种删除许多 if 语句的方法来简化代码
- 简化复杂的if语句
- 简化此If语句,使其不会't重复代码-Javascript
- 简化此JavaScript代码块(IF)
- 我可以将这些嵌套的javascript“if”语句简化为一个吗?
- 我可以简化多个 if - else 语句吗?
- 将2个if语句简化为一个循环
- 寻找一种简化if/else语句的方法.javascript
- 对同一变量使用多个OR条件来简化IF语句
- 简化Javascript中的迭代if/else-if语句
- 简化此IF结构
- Jquery简化了与多个id相关的多个if语句,这些id具有相似的字符
- 任何简化长if else语句的方法<在条件
- 简化IF语句
- 通过重复if/else部分简化函数
- 简化Javascript if语句undefined
- 具有多个条件的If语句-语法简化
- 简化if else语句
- 如何简化if语句在javascript中工作
- 使用For循环[Javascript]简化IF..Else语句