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

时间:2012-10-09 23:16:33

标签: javascript for-loop increment

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

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

8 个答案:

答案 0 :(得分:197)

使用+= assignment operator

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

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

有关for循环的每个步骤的更多信息,check out the MDN article

答案 1 :(得分:12)

for循环:

for(INIT; TEST; ADVANCE) {
    BODY
}

表示以下内容:

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

您几乎可以为INITTESTADVANCEBODY撰写任何表达式。

请注意++运算符和变体是具有副作用的运算符(如果您不使用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]

答案 2 :(得分:7)

for (var i = 0; i < 10; i = i + 2) {
    // code here
}​

答案 3 :(得分:5)

Andrew Whitaker的回答是正确的,但你可以对任何部分使用任何表达 请记住第二个(中间)表达式应该进行评估,以便可以将其与布尔值truefalse进行比较。

当我使用for loop时,我认为它是

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

正如

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

答案 4 :(得分:1)

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

答案 5 :(得分:0)

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

答案 6 :(得分: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
}

答案 7 :(得分:-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'可以是任何浮点数或整数,具体取决于所需的步长。