159

andfor以外に、Javascriptでループをインクリメントする他の方法はありますか? たとえば、1 ではなく 3 ずつ増やしたいとします。i++++i

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

8 に答える 8

327

Use the += assignment operator:

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

Technically, you can place any expression you'd like in the final expression of the for loop, but it is typically used to update the counter variable.

For more information about each step of the for loop, check out the MDN article.

于 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 の答えは正しいですが、どの部分にもどのような表現を使用してもかまいません。
ブール値trueまたはfalse.

forloopを使用するときは、次のように考えます

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

そのまま

var i = 0;
while( i < 10 ) {
    /* expression */
    ++i;
}
于 2012-10-09T23:32:05.187 に答える
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 に答える