For 循环可以增加/减少一个以上吗?

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

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

使用 += 赋值运算符赋值运算符:

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

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

有关 For 循环的每个步骤的详细信息,请参阅 看看 MDN 的文章

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

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]

Andrew Whitaker 的回答是正确的,但是你可以用任何表达式来表示任何部分。
只要记住第二个(中间)表达式应该求值,这样就可以将它与布尔 truefalse进行比较。

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

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

作为

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

你当然可以。其他人已经正确地指出,您需要做 i += 3。你不能做什么,你已经张贴,因为你在这里所做的一切都是添加 i + 3,但从来没有分配的结果回到 ii++只是 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

三元运算符的最后一部分允许您指定增量步长。例如,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”可以是任何浮点数或整数,具体取决于所需的步长。

这里有一个操作符,例如,如果我想把一个变量 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
}

对于那些希望增加一对数字(如1-2到3-4)的人:

解决方案一:

//initial values
var n_left = 1;
var n_right = 2;
    

for (i = 1; i <= 5; i++) {
        

console.log(n_left + "-" + n_right);
        

n_left =+ n_left+2;
n_right =+ n_right+2;
}
//result: 1-2 3-4 5-6 7-8 9-10

解决方案二:

for (x = 0; x <= 9; x+=2) {
    

console.log((x+1) + "-" + (x+2));


}
//result: 1-2 3-4 5-6 7-8 9-10