是这样的,请看如下代码片段:
var local = [{
src: '1.jpeg'
}, {
src: '2.jpeg'
}, {
src: '3.jpeg'
}, {
src: '4.jpeg'
}, {
src: '5.jpeg'
}, {
src: '6.jpeg'
}];
var counter = 0;
btn.onclick = function () {
if (counter < local.length - 1) {
console.log(local[counter].src);
counter ++;
}
}
counter
到第5个的时候就过不去了,是不是条件要这样写counter <= local.length - 1
?是这样吗?
local.length === 6
local.length - 1 === 5
counter < 5 当然到第五个就过不去了
因为 counter 是从 0 开始的,但是当处在第五个的时候,counter 已经 等于 5 了
也就是说,counter 不是一个 index,是 index + 1
index < length - 1
index + 1 <= length - 1
index + 1 < length
都行
建议你不要用那些模糊不清的变量。counter 到底是个啥?当前所处的 index?下一次的 index?
var index = -1;
btn.onclick = function() {
if (index < local.length - 1) {
++index;
console.log(local[index].src);
}
};
如果counter
是从0开始的话,那么判断条件是counter <= local.length - 1
或counter < local.length
counter
如题主设置,容易造成全局污染,建议题主如下写,
btn.onclick = (function(counter){
var index = counter;
return function(){//click 时间处理函数
if(index < local.length){
console.log(local[index].src);
index++;
}
};
})(0);//从0开始计数