i++
と++i
以外に、Javascriptでfor
ループをインクリメントする他の方法はありますか?たとえば、1ではなく3ずつ増やしたい。
for (var i = 0; i < myVar.length; i+3) {
//every three
}
+=
割り当て演算子 を使用します。
for (var i = 0; i < myVar.length; i += 3) {
技術的には、任意の式をforループの最終式に配置できますが、通常はカウンター変数を更新するために使用されます。
Forループの各ステップの詳細については、 MDNの記事をご覧ください 。
for
ループ:
for(INIT; TEST; ADVANCE) {
BODY
}
以下を意味します:
INIT;
while (true) {
if (!TEST)
break;
BODY;
ADVANCE;
}
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]
for (var i = 0; i < 10; i = i + 2) {
// code here
}
Andrew Whitakerの答えは真実ですが、どの部分でも任意の表現を使用できます。
2番目の(中間)式がブール値true
またはfalse
と比較できるように評価する必要があることを覚えておいてください。
for
loop を使用すると、
for (var i = 0; i < 10; ++i) {
/* expression */
}
として
var i = 0;
while( i < 10 ) {
/* expression */
++i;
}
確かにできます。他の人は、i += 3
を行う必要があることを正しく指摘しています。ここで行っているのはi + 3
を追加するだけですが、結果をi
に割り当てないため、投稿したことはできません。 i++
はi = i + 1
の短縮形であり、同様にi +=3
はi = i + 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