我有以下代码:
...
counters: [0, 0]
...
var limit = [3, 5];
var intervals = [];
for (var i in limit) {
intervals.push(setInterval(function () {
that.counters.splice(i, 1, that.counters[i] + 1);
if (that.counters[i] >= limit[i]) {
clearInterval(intervals[i]);
}
}, 10));
}
当我在没有for循环的情况下编写它时,我得到2个计数器:一个计数到3,一个计数到5。
但是当我运行这段代码时,我有一个停在0的计数器和一个永不停止的第二个计数器。
为什么会发生这种情况?如何使用for循环?