Подтвердить что ты не робот

Может ли инкремент/уменьшение цикла for более чем одним?

Существуют ли другие способы увеличения цикла for в Javascript, кроме i++ и ++i? Например, я хочу увеличить на 3 вместо одного.

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

Ответ 1

Используйте оператор присваивания += :

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

Технически вы можете разместить любое выражение, которое вы хотите в конечном выражении цикла for, но оно обычно используется для обновления переменной счетчика.

Для получения дополнительной информации о каждом шаге цикла for просмотрите статью MDN.

Ответ 2

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

Ответ 3

A for loop:

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]

Ответ 4

Ответ Эндрю Уайткера верен, но вы можете использовать любое выражение для любой части.
Просто помните, что второе (среднее) выражение должно оцениваться, поэтому его можно сравнить с логическим true или false.

Когда я использую цикл for, я думаю об этом как

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

как

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

Ответ 5

Вы, конечно, можете. Другие правильно указали, что вам нужно сделать i += 3. Вы не можете делать то, что вы разместили, потому что все, что вы делаете, добавляет i + 3, но не возвращает результат обратно в i. i++ является просто сокращением для i = i + 1, аналогично i +=3 является сокращением для i = i + 3.