web-dev-qa-db-fra.com

Une boucle for peut-elle incrémenter/décrémenter de plusieurs?

Existe-t-il d'autres méthodes pour incrémenter une boucle for en Javascript, à part i++ et ++i? Par exemple, je veux incrémenter de 3 au lieu d'un. 

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

Utilisez l'opérateur += :

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

Techniquement, vous pouvez placer n'importe quelle expression de votre choix dans l'expression finale de la boucle for, mais elle est généralement utilisée pour mettre à jour la variable counter.

Pour plus d'informations sur chaque étape de la boucle for, consultez l'article MDN .

184
Andrew Whitaker

Une boucle for:

for(INIT; TEST; ADVANCE) {
    BODY
}

Signifie ce qui suit:

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

Vous pouvez écrire presque n'importe quelle expression pour INIT, TEST, ADVANCE et BODY.

Notez que les opérateurs et les variantes ++ sont des opérateurs ayant des effets secondaires (il faut essayer de les éviter si vous ne les utilisez pas comme i+=1 et autres):

  • ++i signifie i+=1; return i
  • i++ signifie oldI=i; i+=1; return oldI

Exemple:

> i=0
> [i++, i, ++i, i, i--, i, --i, i]
[0, 1, 2, 2, 2, 1, 0, 0]
11
ninjagecko
for (var i = 0; i < 10; i = i + 2) {
    // code here
}​
7
Adil Malik

La réponse d'Andrew Whitaker est vraie, mais vous pouvez utiliser n'importe quelle expression pour n'importe quelle partie.
Rappelez-vous que la deuxième expression (du milieu) doit être évaluée pour pouvoir être comparée à une valeur booléenne true ou false.

Quand j'utilise une boucle for , je la considère comme

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

comme étant

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

Vous pouvez certainement. D'autres ont bien fait remarquer que vous devez faire i += 3. Vous ne pouvez pas faire ce que vous avez posté car tout ce que vous faites ici est d'ajouter i + 3 mais de ne jamais attribuer le résultat à i. i++ est juste un raccourci pour i = i + 1, de même que i +=3 est un raccourci pour i = i + 3.

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

Additionnel  

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
0
Jayantha