除了for
和i++
之外,还有其他方法可以在Javascript中增加++i
循环吗?例如,我想增加3而不是1。
for (var i = 0; i < myVar.length; i+3) {
//every three
}
答案 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;
}
您几乎可以为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]
答案 2 :(得分:7)
for (var i = 0; i < 10; i = i + 2) {
// code here
}
答案 3 :(得分:5)
Andrew Whitaker的回答是正确的,但你可以对任何部分使用任何表达
请记住第二个(中间)表达式应该进行评估,以便可以将其与布尔值true
或false
进行比较。
当我使用for
loop时,我认为它是
for (var i = 0; i < 10; ++i) {
/* expression */
}
正如
var i = 0;
while( i < 10 ) {
/* expression */
++i;
}
答案 4 :(得分:1)
你当然可以。其他人已正确指出您需要i += 3
。您无法执行已发布的内容,因为您在此处所做的只是添加i + 3
,但从未将结果分配回i
。 i++
只是i = i + 1
的简写,同样i +=3
是i = 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'可以是任何浮点数或整数,具体取决于所需的步长。