javascript - 使用 % 运算符而不是 if 语句重写代码
问题描述
我正在编写这段代码,作为一个 JS 菜鸟,我被困在这里,需要帮助。您将如何使用 % 运算符而不是 if 语句重写此块?
<!DOCTYPE html>
<html>
<head>
<script>
window.onload=function(){
var letters = ["A","B","C"]
var counter = 0;
var timer=setInterval(
function(){
counter= counter+1;
if (counter==letters.length){
counter=0;
}
document.getElementById("demo").value=letters[counter];
},1000)
}
</script>
</head>
<body>
<input type="text" id="demo" value="A">
</body>
</html>
解决方案
在执行添加操作后简单地使用它来返回除法(或模数)后的余数:
const letters = ["A","B","C"]
let counter = 0;
setInterval(function(){
counter = (counter+1) % letters.length;
document.getElementById("demo").value = letters[counter];
}, 1000);
<input type="text" id="demo" value="A" />
其他几个技巧,const
如果值没有改变(比如你的数组),并且let
它肯定可以改变,请使用。此外,您不需要在此处存储间隔,因为您从不取消它,因此const timer
在这种情况下不需要。大大简化了代码!
推荐阅读
- exception - 构建 Xamarin.iOS 时没有名为“NFCVASReaderSessionDelegate”的类型或协议
- upgrade - 超集从 0.38 升级到 1.0.1
- javafx - 将程序导出到 jar 文件时,JFXDatePicker 不起作用
- ansible - 如何在 AWX 中为库存脚本存储和检索秘密?
- node.js - 如何使用 http-proxy 和 Harmonon 将脚本标记注入 HTML 正文
- django - Django Rest-Framework-Simplejwt 不适用于 modheader
- python - 感知器神经网络不会学习特定范围内的值
- python - 每个时期应用不同的数据增强
- javascript - JavaScript:*可以*通过调用/应用/绑定设置未定义的属性?
- javascript - 使用 express js 到 mongodb 在数据库中创建配置文件时出错