Javascript Jquery在数组中循环-一定有更好的方法
我看到过类似的问题,在过去的几天里,我读了又读。我只是不知道我做的是否正确(我非常怀疑我是正确的),以及如何从这里得到正确的方法。基本上,我有一个数组的图像,我想循环通过。它在工作,但由于某种原因,c的值连续两次为零Javascript Jquery在数组中循环-一定有更好的方法,javascript,jquery,arrays,Javascript,Jquery,Arrays,我看到过类似的问题,在过去的几天里,我读了又读。我只是不知道我做的是否正确(我非常怀疑我是正确的),以及如何从这里得到正确的方法。基本上,我有一个数组的图像,我想循环通过。它在工作,但由于某种原因,c的值连续两次为零 function slider_plus() { var imgs = imgArr.length; a++; var b = a - 1; var c = a + 1; if (a >= imgs) { a = 0
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]);
}
函数滑块\u plus(){
var imgs=imgArr.length;
a++;
VarB=a-1;
var c=a+1;
如果(a>=imgs){
a=0;
}
if(b<0){
b=imgs-1;
}
如果(c>=imgs){
c=0;
}
$(“#varsDiv”).html(“var b=“+b+”var a=“+a+”var c=“+c”);
$(“#basic_ul”).html(imgar[b]+imgar[a]+imgar[c]);
}
换句话说,每次调用函数时,c的值都应该增加。但当这些是重复调用函数的结果时:2 3 0 0 1 2 3 0 0 1 2 3 0 0 0。。。等等我需要的是:2301,2301。我百分之百确信有更好的方法来做这件事,但我是个笨蛋,这是我所能做到的…你是说这样吗
var a = 0;
function slider_plus() {
var imgs = imgArr.length;
$("#basic_ul").html(imgArr[a++ % imgs] + imgArr[a % imgs] + imgArr[(a+1) % imgs]);
}
代码的快速修复方法是在设置和调整
b
和c
的值之前调整a
(当其>=imgs
时将其设置为0)。现在当a
在你周围循环时,将它和c
都设置为0,我认为这不是你想要的
您可能还需要阅读模数运算符,%
。它将使您更容易地“包装”这些值
a %= imgs // will set a to 0 when it equals imgs
不过,你仍然需要抓住-1个案例来解释
b
。谢谢@bhamlin!我将学习模运算符,也许我可以用它减少大量代码。