javascript - 检查 var 是否大于或小于并执行指定的操作

标签 javascript

我有一个小的 navigationSlider 函数:

    function navigateSlider(btnClicked) {

        if (btnClicked == 'next') {
            i++;
        } else {
            i--;
        }

        if (i > movies.length-1) {
            i = 0
        }

        var movie = movies[i].poster;
        document.getElementById('movie_slider').innerHTML = '<img src="' + movie + '"/>';
    };

这会检查哪个按钮被单击,然后从 var i 中加 1 或减 1(从 0 开始)。

我希望能够循环遍历数组中的对象,因此如果到达数组中的最后一个对象,则 var 我应该重置为第一个对象,并且当用户遍历先前的对象并到达第一个对象时object var i 应该重置为数组中的最后一个对象,以便用户可以一次又一次地循环列表。但我在为最后一部分设置 if 语句时遇到了麻烦。

在这一部分:

    if (i == movies.length) {
        i = 0
    }

检查 i var 是否等于电影数组中的对象,然后将其重置为 0,然后用户可以再次循环遍历该数组。但是,什么是相反的好解决方案,以便用户可以使用上一个按钮循环遍历数组?

最佳答案

尝试这个逻辑(你可以避免最后一个 if 条件)

if (btnClicked == 'next') 
{
  i = i == movies.length - 1 ? 0 : i + 1 ;  
} 
else 
{
  i = i == 0 ? movies.length - 1 : i - 1 ;  
}

按照您的要求使用简单的 if/else :)

if (btnClicked == 'next') 
{
  if ( i == movies.length - 1 )
  {
     i = 0;
  } 
  else
  {
     i++;
  }
} 
else 
{
  if ( i == 0 )
  {
     i = movies.length - 1;
  } 
  else
  {
     i--;
  }
}

关于javascript - 检查 var 是否大于或小于并执行指定的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38371745/

相关文章:

javascript - 如何将监听器附加到接受参数并在 JavaScript 中返回值的对象?

javascript - Twitter 对 css outline 使用了什么样的技巧?

javascript - 打开 HTML 弹出窗口

javascript - Sproutcore 中的文本字段输入错误警报

javascript - 匹配空格之间的单个单词长度

javascript - window.location.href 导航出我的网站

javascript - react 路由器dom v5默认路由不起作用

Javascript 函数 GetChatURL 未定义

javascript - JavaScript 上的 ESLint 错误 (Unexpected token ...) 简化为字典

Javascript、Chrome 扩展开发、关闭弹出窗口