159

除了and之外,还有其他方法可以增加forJavascript 中的循环吗?例如,我想增加 3 而不是 1。i++++i

for (var i = 0; i < myVar.length; i+3) {
   //every three
}
4

8 回答 8

327

使用+= 赋值运算符

for (var i = 0; i < myVar.length; i += 3) {

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

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

于 2012-10-09T23:18:07.183 回答
14

一个for循环:

for(INIT; TEST; ADVANCE) {
    BODY
}

意思如下:

INIT;
while (true) {
    if (!TEST)
        break;
    BODY;
    ADVANCE;
}

您几乎可以为INITTESTADVANCE和编写任何表达式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]
于 2012-10-09T23:28:25.033 回答
9
for (var i = 0; i < 10; i = i + 2) {
    // code here
}​
于 2012-10-09T23:19:09.340 回答
5

Andrew Whitaker 的回答是正确的,但您可以对任何部分使用任何表达式。
请记住第二个(中间)表达式应该计算,以便可以将其与布尔值truefalse.

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

for (var i = 0; i < 10; ++i) {
    /* expression */
}

作为存在

var i = 0;
while( i < 10 ) {
    /* expression */
    ++i;
}
于 2012-10-09T23:32:05.187 回答
3
for (var i = 0; i < myVar.length; i+=3) {
   //every three
}

额外的

Operator   Example    Same As
  ++       X ++        x = x + 1
  --       X --        x = x - 1
  +=       x += y      x = x + y
  -=       x -= y      x = x - y
  *=       x *= y      x = x * y
  /=       x /= y      x = x / y
  %=       x %= y      x = x % y
于 2018-02-20T07:36:03.920 回答
2

你当然可以。其他人已经正确指出你需要做i += 3. 您无法执行您发布的内容,因为您在这里所做的只是添加i + 3但从未将结果分配回i. i++只是 的简写i = i + 1,同样i +=3是 的简写i = i + 3

于 2017-05-24T00:22:20.433 回答
1

三元运算符的最后一部分允许您指定增量步长。例如,i++ 表示增加 1。i+=2 与 i=i+2,... 等相同。 示例:

let val= [];

for (let i = 0; i < 9; i+=2) {
  val = val + i+",";
}


console.log(val);

预期结果:“2,4,6,8”

'i' 可以是任何浮点数或整数,具体取决于所需的步长。

于 2018-09-03T05:41:33.647 回答
0

有一个运营商就是为了这个。例如,如果我想将变量 i 更改为 3,那么:

var someValue = 9;
var Increment  = 3;
for(var i=0;i<someValue;i+=Increment){
//do whatever
}
要减少,请使用 -=
var someValue = 3;
var Increment  = 3;
for(var i=9;i>someValue;i+=Increment){
//do whatever
}

于 2020-12-13T00:24:56.997 回答