我有一个小的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,用户可以再次遍历数组。但对于相反的情况,什么是一个很好的解决方案,以便用户可以使用前一个按钮循环遍历数组?
答案 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);
}