gpt4 book ai didi

javascript - 当计数器变量大于数组的长度时,在零处重新启动计数器变量的函数——不起作用

转载 作者:行者123 更新时间:2023-11-30 19:21:51 27 4
gpt4 key购买 nike

我是一名开发新手,正在尝试使用 html、css 和 javascript 构建图像轮播。

我有一个名为“幻灯片”的图像数组和一个名为 currentSlide、prevSlide、nextSlide 的变量,我想使用它们来跟踪相关的幻灯片索引,以便稍后可以在变量值更新时显示正确的幻灯片.

我正在努力做到这一点,以便在用户单击“下一步”时发生以下情况:

  • 事件监听器调用一个名为 slideRight 的函数
  • slideRight 将调用 2 个函数:updateVarsRight 和 displaySlides
    • updateVarsRight 会将变量(例如 currentSlide)递增 1然后调用另一个名为 enforceLoop 的函数。
      • enforceLoop() 将确保递增的变量值不要移出相应的图像数组值。 (IE。 当 currentSlide > slides.length-1, currentSlide = 0).
    • displaySlides 当然会显示新幻灯片

我遇到的问题是 enforceLoop 函数。如果我检查控制台并单击下一步,似乎当 currentSlide 的值增加超过数组中幻灯片的总数并且应该设置回零时,它不会并继续向上计数。

我很难表达清楚,但如果您能够运行代码笔并在单击下一步时检查控制台,那么您应该清楚我的意思。

我确信有更好更有效的方法来构建幻灯片,但我试图自己解决问题,这是我决定采用的策略,然后再考虑重构。

如果我没有足够清楚地解释这个问题,我深表歉意,第一次张贴者。

提前感谢您的任何见解。

代码笔: https://codepen.io/dansoutar/pen/RXZREV

主要问题:

function enforceLoop(num) {
if (num < 0) {
num === slides.length - 1;
console.log('num is now the last slide...' + num);
return num;
} else if (num > slides.length - 1) {
num === 0;
console.log(num + '...should be zero!!');
return num;
} else {
console.log('enforce loop = num is ...' + num);
return num;
}

}

最佳答案

num === slides.length - 1;, num === 0;

=== 是一个相等运算符。您要使用赋值运算符 =

关于javascript - 当计数器变量大于数组的长度时,在零处重新启动计数器变量的函数——不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57364314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com