下面的JavaScript循环增量正在工作,但不是减量。怎么解决这个问题?
for(var i=1; i<5; i++) { alert(i); } work fine
for(var i=10; i<5; i--) { alert(i); } not working
答案 0 :(得分:17)
更好地检查它... 减少使用
for (var i = 10; i > 5; i--) { alert(i); }
答案 1 :(得分:4)
您对第二个for循环的条件检查不正确。你说i = 10,并且在i <5时继续,这将永远不会。
尝试
for(var i=10; i>5; i--) { alert(i); }
答案 2 :(得分:4)
第一个循环以i = 1
开头并递增,以便i = [1, 2, 3, 4]
同时i < 5
。第二个以i=10
开头,但是主体永远不会执行,因为它只应在i < 5
时运行。
你想要的可能是:
for (var i = 10; i > 5; i--) { alert(i); }
答案 3 :(得分:1)
“ for”循环的第二个参数是退出条件。只要条件为真,就会执行for循环中的代码。例如:
for(var i = 0; i < 10; i++){
console.log([i]);
}
i
是否小于10
(i < 10
),这是正确的,因为在第一个实例中i = 0,结果循环进入了代码块并运行代码,然后递增并继续直到退出条件不再为真。for (var i = 10; i < 5; i--){alert[i]}
永远不会执行for循环中的代码,因为退出条件i < 5
的计算结果为false(i
等于10
)。为了实现您的目标,您必须将退出条件for
的for循环更改为:
for (var i = 10; i > 5; i--) {
alert([i]);
}
答案 4 :(得分:0)
您可以通过将i设置为要迭代的长度来使其更加动态:
const string = "abcd";
for (let i = string.length; i > 0; i--) {
console.log(str[i]);
}
注意:如果将条件设置为i >= 0
,您将忽略数组或字符串中的最后一个元素,因为它的索引为0。