首页 > 解决方案 > 使用 % 运算符而不是 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>

标签: javascriptjquery

解决方案


在执行添加操作后简单地使用它来返回除法(或模数)后的余数:

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在这种情况下不需要。大大简化了代码!


推荐阅读