for循环可以增加/减少多于一个吗?

bre*_*ine 106 javascript for-loop increment

是否有其他方式来增加一个forJavascript中环,除了i++++i?例如,我想增加3而不是1.

for (var i = 0; i < myVar.length; i+3) {
   //every three
}
Run Code Online (Sandbox Code Playgroud)

And*_*ker 220

使用+= 赋值运算符:

for (var i = 0; i < myVar.length; i += 3) {
Run Code Online (Sandbox Code Playgroud)

从技术上讲,您可以在for循环的最终表达式中放置您想要的任何表达式,但它通常用于更新计数器变量.

有关for循环的每个步骤的更多信息,请查看MDN文章.

  • 当我们做`i+3`时,无限循环的原因是什么? (2认同)
  • @SanjayShr `i+3` 不会改变 `i` 的值 (2认同)

nin*_*cko 12

一个for循环:

for(INIT; TEST; ADVANCE) {
    BODY
}
Run Code Online (Sandbox Code Playgroud)

意味着以下内容:

INIT;
while (true) {
    if (!TEST)
        break;
    BODY;
    ADVANCE;
}
Run Code Online (Sandbox Code Playgroud)

你可以写几乎所有的表达式INIT,TEST,ADVANCE,和BODY.

请注意,++运算符和变体是具有副作用的运算符(如果您不使用它们,应该尝试避免使用它们i+=1):

  • ++i 手段 i+=1; return i
  • i++ 手段 oldI=i; i+=1; return oldI

例:

> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]
Run Code Online (Sandbox Code Playgroud)


Adi*_*lik 7

for (var i = 0; i < 10; i = i + 2) {
    // code here
}?
Run Code Online (Sandbox Code Playgroud)


Pau*_* S. 5

安德鲁惠特克的答案是对的,但你可以使用任何表达任何部分.
只记得第二个(中间)表达式应该进行评估,以便可以将它与布尔值truefalse.

当我使用for循环时,我认为它是

for (var i = 0; i < 10; ++i) {
    /* expression */
}
Run Code Online (Sandbox Code Playgroud)

作为

var i = 0;
while( i < 10 ) {
    /* expression */
    ++i;
}
Run Code Online (Sandbox Code Playgroud)