Javascript 为什么要使用&燃气轮机=&引用;在以下示例中不起作用为什么我们必须使用-1“;相反

Javascript 为什么要使用&燃气轮机=&引用;在以下示例中不起作用为什么我们必须使用-1“;相反,javascript,jquery,Javascript,Jquery,所以我只是在学习和实践Javascript以及Javascript库。在本例中,我使用JQuery。这个例子只是一个简单的引号旋转器(你想叫它什么就换什么)。代码运行良好。我的问题是匿名函数中的if语句(在fadeOut方法中)。if语句中的参数为: currentQuote == allQuotes.length - 1 为什么要这样写而不是 currentQuote >= allQuotes.length 使用大于或等于不应该以完全相同的方式工作吗?如果没有,为什么没有?整个代码如

所以我只是在学习和实践Javascript以及Javascript库。在本例中,我使用JQuery。这个例子只是一个简单的引号旋转器(你想叫它什么就换什么)。代码运行良好。我的问题是匿名函数中的if语句(在fadeOut方法中)。if语句中的参数为:

currentQuote == allQuotes.length - 1
为什么要这样写而不是

currentQuote >= allQuotes.length
使用大于或等于不应该以完全相同的方式工作吗?如果没有,为什么没有?整个代码如下

//HTML

<body>
  <div class="quote-holder">
    <blockquote>
      Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do 
    </blockquote>
    <blockquote>
     Ut enim ad minim veniam, quis nostrud exercitation ullamco 
    </blockquote>
    <blockquote>
      Duis aute irure dolor in reprehenderit in voluptate velit esse 
    </blockquote>
  </div>
</body>
//javascript Jquery

let allQuotes = $("blockquote");
let currentQuote = 0;

function changeQuote(){
  $(allQuotes[currentQuote]).fadeOut(200, function(){if(currentQuote == allQuotes.length - 1){
    currentQuote = 0;
  }else {
    currentQuote++;
  }
    $(allQuotes[currentQuote]).fadeIn(200)});


}

let quoteTimer = setInterval(changeQuote, 3000)

因为每当阵列位置到达末端时,循环需要重置。否则,它将始终显示第一个位置

如果数组长度为5。位置为[0]、[1]、[2]、[3]、[4],因此4是最后一个元素,即:

array.length-1.

在问题函数中,您需要将位置设置为0,以便引号循环保持旋转。我用注释一步一步地解释了更多内容

let allQuotes=$(“blockquote”);
设currentQuote=0;
函数changeQuote(){
$(allQuotes[currentQuote]).fadeOut(200,function(){
if(currentQuote==allQuotes.length-1){//if最后一个位置
currentQuote=0;//重置
}else{//else
currentQuote++;//下一步
}
$(allQuotes[currentQuote]).fadeIn(200)});
}
让quoteTimer=setInterval(changeQuote,3000)
。报价持有人{
宽度:30%;
}
大宗报价{
显示:无;
}
blockquote:类型的第一个{
显示:块;
}

你好
你好吗?
很好,谢谢

我想你需要加一些括号<代码>当前报价==(allQuotes.length-1)
currentQuote>=allQuotes.length
如果
currentQuote=allQuotes.length-1
其中
currentQuote==allQuotes.length-1
的计算结果为true。
currentQuote==allQuotes.length-1
表示
currentQuote
小于
allQuotes.length
currentQuote>=allQuotes.length
表示
currentQuote
大于或等于
allQuotes.length
。不能同时大于和小于。@Obsidiage:Uhm。否。
currentQuote==allQuotes.length-1
表示
currentQuote
比allQuotes.length小一个。考虑到你其余评论的上下文,这是一个重要的区别。
let allQuotes = $("blockquote");
let currentQuote = 0;

function changeQuote(){
  $(allQuotes[currentQuote]).fadeOut(200, function(){if(currentQuote == allQuotes.length - 1){
    currentQuote = 0;
  }else {
    currentQuote++;
  }
    $(allQuotes[currentQuote]).fadeIn(200)});


}

let quoteTimer = setInterval(changeQuote, 3000)