检查var是大于还是小于并执行指定的操作

时间:2016-07-14 10:26:11

标签: javascript

我有一个小的navigationSlider函数:

public class MyItemReader implements ItemReader {

    private EntityManager em;

    @Inject @BatchProperty
    private String persistenceUnitName;

    @Override
    public void open(Serializable checkpoint) throws Exception {
        String path = "java:comp/env/" + persistenceUnitName;
        em = (EntityManager) InitialContext.doLookup(path);
        ...
    }

    ...
}

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

我希望能够循环遍历数组中的对象,所以如果你到达数组中的最后一个对象,var i应该重置为第一个对象,当用户遍历前面的对象并进入第一个对象时对象var我应该重置为数组中的最后一个对象,以便用户可以反复循环遍历列表。但是我在最后一部分设置if语句时遇到了麻烦。

在这部分:

    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 + '"/>';
    };

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

2 个答案:

答案 0 :(得分:2)

尝试这个逻辑(你可以避免最后的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--;
  }
}

答案 1 :(得分:0)

if (i > 0 && i < 8){
alert(i);
}