我看过类似这个问题的问题,过去几天我读过并重读了这些问题。我只是不知道我是否正确地这样做(我非常怀疑我是)以及如何从这里得到正确的方法。基本上我有一个完整的图像阵列,我想循环。它工作但由于某种原因,c的值连续两次为零。
function slider_plus() {
var imgs = imgArr.length;
a++;
var b = a - 1;
var c = a + 1;
if (a >= imgs) {
a = 0;
}
if (b < 0) {
b = imgs - 1;
}
if (c >= imgs) {
c = 0;
}
$("#varsDiv").html(" var b = " + b + " var a = " + a + " var c = " + c);
$("#basic_ul").html(imgArr[b] + imgArr[a] + imgArr[c]);
}
换句话说,每次调用函数时,c的值都应该增加。但是当这些是重复调用函数的结果时:2 3 0 0 1 2 3 0 0 1 2 3 0 0 ...依此类推。我需要它只是:2 3 0 1 2 3 0 1.我100%肯定有更好的方法来做到这一点,但我是一个菜鸟,这是我已经得到... < / p>
答案 0 :(得分:2)
对代码的快速修复是在设置和调整a
和{{1的值之前调整imgs
(在&gt; = b
时将其设置为0) }}。现在当c
循环时你将它和a
都设置为0,我认为这不是你想要的。
您可能还想阅读模数运算符c
。它可以让你更容易“包裹”这些值。
%
尽管如此,你仍然需要抓住a %= imgs // will set a to 0 when it equals imgs
的-1个案例。
答案 1 :(得分:0)
你的意思是这样吗?
var a = 0;
function slider_plus() {
var imgs = imgArr.length;
$("#basic_ul").html(imgArr[a++ % imgs] + imgArr[a % imgs] + imgArr[(a+1) % imgs]);
}