Может ли цикл for увеличиваться/уменьшаться более чем на один?
есть ли другие способы увеличить a for цикл в Javascript, кроме i++ и ++i? Например, я хочу увеличить на 3 вместо одного.
for (var i = 0; i < myVar.length; i+3) {
//every three
}
7 ответов:
использовать
+=оператор присваивания:for (var i = 0; i < myVar.length; i += 3) {технически, вы можете поместить любое выражение, которое вы хотите в окончательное выражение цикла for, но оно обычно используется для обновления переменной счетчика.
для получения дополнительной информации о каждом шаге цикла for,проверьте статью MDN.
A
forпетли:for(INIT; TEST; ADVANCE) { BODY }означает следующее:
INIT; while (true) { if (!TEST) break; BODY; ADVANCE; }вы можете написать практически любое выражение для
INIT,TEST,ADVANCEиBODY.отметим, что
++операторы и варианты-это операторы с побочными эффектами (следует стараться избегать их, если вы не используете их какi+=1и т. п.):
++iозначаетi+=1; return ii++означаетoldI=i; i+=1; return oldIпример:
> i=0 > [i++, i, ++i, i, i--, i, --i, i] [0, 1, 2, 2, 2, 1, 0, 0]
ответ Эндрю Уитакера верен, но вы можете использовать любое выражение для любой части.
Просто помните, что второе (среднее) выражение должно вычисляться, чтобы его можно было сравнить с булевымtrueилиfalse.когда я использую
forцикл, Я думаю об этом какfor (var i = 0; i < 10; ++i) { /* expression */ }как
var i = 0; while( i < 10 ) { /* expression */ ++i; }
вы, конечно, можете. Другие правильно указали, что вам нужно сделать
i += 3. Вы не можете сделать то, что вы опубликовали, потому что все, что вы делаете здесь, это добавлениеi + 3но никогда не присваивать результат обратноi.i++- это просто сокращение для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"
" Я " может быть любой плавающей точкой или целое число в зависимости от желаемого размера шага.