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

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

for (var i = 0; i < myVar.length; i+3) {
   //every three
}
 CptJesus10 окт. 2012 г., 01:18
Не могли бы вы заменить третий аргумент i = i + 3? Или это только на Java?
 I Hate Lazy10 окт. 2012 г., 01:24
for цикл ничего не увеличивает. Ваш код, используемый вfor заявление делает. Это полностью зависит от вас, как / если / где / когда вы хотите изменитьi или любая другая переменная в этом отношении.
 elclanrs10 окт. 2012 г., 01:18
Да, это нормальноi++ а также++i похожиi+=1 если используется в объявлении цикла такi+=3 должно сработать.
 brentonstrine10 окт. 2012 г., 01:46
Я понимаю, что это простой вопрос с простым решением, но в чем причина отрицательных голосов? Я уверен, что это не дубликат.
 ninjagecko10 окт. 2012 г., 01:26
Это не цикл for, это бесконечный цикл. Ты имеешь в видуi+=3.

Ответы на вопрос(7)

for (var i = 0; i < 10; i = i + 2) {
    // code here
}​
 28 февр. 2018 г., 14:07
или жеfor (var i = 0; i < 10; i+=2), так какi=i+2 равноi+=2

ащения. Например, i ++ означает увеличение на 1. i + = 2 - это то же самое, что i = i + 2, ... и т. Д. Example:

let val= [];

for (let i = 0; i < 9; i+=2) {
  val = val + i+",";
}


console.log(val);

Ожидаемые результаты: «2,4,6,8»;

& APOS; я & APOS; может быть любой плавающей точкой или целым числом в зависимости от желаемого размера шага.

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

for цикл:

Означает следующее:

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

Вы можете написать практически любое выражение дляINIT, TEST, ADVANCE, а такжеBODY.

Обратите внимание, что++ операторы и варианты - это операторы с побочными эффектами (следует избегать их, если вы их не используете, напримерi+=1 и тому подобное):

++i means i+=1; return i i++ means 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 < myVar.length; i += 3) {

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

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

 03 июн. 2018 г., 20:00
Понял, прямое назначение не работает
 10 окт. 2012 г., 01:46
@brentonstrine: Нет проблем, рад, что смог помочь
 15 янв. 2019 г., 02:16
@SanjayShri+3 не меняет значениеi
 brentonstrine10 окт. 2012 г., 01:45
Спасибо за детали - я был почти уверен, что есть способ поместить более сложные выражения в третий слот - я просто забыл, что нужно определить переменную, так что очевидноi+3 не работает.
 03 июн. 2018 г., 19:57
Что является причиной бесконечного цикла, когда мы делаемi+3?

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

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

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

как существо

var i = 0;
while( i < 10 ) {
    /* expression */
    ++i;
}
<,/code>
for (var i = 0; i < myVar.length; i+=3) {
   //every three
}

additional

  ++       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

Ваш ответ на вопрос