如何减少JavaScript for循环中的工作?

时间:2013-04-01 12:49:15

标签: javascript

下面的JavaScript循环增量正在工作,但不是减量。怎么解决这个问题?

for(var i=1; i<5; i++) { alert(i); } work fine

for(var i=10; i<5; i--) { alert(i); } not working

5 个答案:

答案 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]);
}
在上述for循环中,退出条件检查i是否小于10i < 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。