Как создать цикл в JavaScript?

Как я могу создать цикл в JavaScript?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
9
0
13 332
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Цикл в JavaScript выглядит так:

for (var = startvalue; var <= endvalue; var = var + increment) {
    // code to be executed
}

Вот пример цикла for:

У нас есть массив элементов узлы.

for(var i = 0; i< nodes.length; i++){
    var node = nodes[i];
    alert(node);
}
Ответ принят как подходящий

Для петель

for (i = startValue; i <= endValue; i++) {
    // Before the loop: i is set to startValue
    // After each iteration of the loop: i++ is executed
    // The loop continues as long as i <= endValue is true
}

Ибо ... в петлях

for (i in things) {
    // If things is an array, i will usually contain the array keys *not advised*
    // If things is an object, i will contain the member names
    // Either way, access values using: things[i]
}

Использование циклов for...in для обхода массивов - плохая практика. Это противоречит стандарту ECMA 262 и может вызвать проблемы при добавлении нестандартных атрибутов или методов к объекту Array, например. пользователя Прототип. (Спасибо Чейз Зайберт за указание на это в комментариях)

Пока петли

while (myCondition) {
    // The loop will continue until myCondition is false
}

Вы не должны использовать for ... in для циклического перебора массивов. Это вызовет проблемы с Prototype. См. prototypejs.org/api/array

Chase Seibert 09.10.2008 06:37

Проблем с циклами for-in можно избежать, если вы проверите с hasOwnProperty: if (! Things.hasOwnProperty (i)) {continue; }

Andreas Grech 19.03.2009 21:36

Вы также можете подумать об оптимизации скорости цикла; см. http://www.robertnyman.com/2008/04/11/javascript-loop-performance/

Помимо встроенных циклов (while() ..., do ... while(), for() ...), существует структура функции самовызова, также известная как рекурсия, для создания цикла без трех встроенных структур цикла.

Учтите следующее:

// set the initial value
var loopCounter = 3;

// the body of the loop
function loop() {

    // this is only to show something, done in the loop
    document.write(loopCounter + '<br>');

    // decrease the loopCounter, to prevent running forever
    loopCounter--;

    // test loopCounter and if truthy call loop() again 
    loopCounter && loop();
}

// invoke the loop
loop();

Излишне говорить, что эта структура часто используется в сочетании с возвращаемым значением, так что это небольшой пример того, как работать со значением, которое доступно не в первый раз, а в конце рекурсии:

function f(n) {
    // return values for 3 to 1
    //       n   -n  ~-n   !~-n   +!~-n   return
    // conv int neg bitnot  not  number 
    //       3   -3   2    false    0    3 * f(2)
    //       2   -2   1    false    0    2 * f(1)
    //       1   -1   0     true    1        1
    // so it takes a positive integer and do some conversion like changed sign, apply
    // bitwise not, do logical not and cast it to number. if this value is then
    // truthy, then return the value. if not, then return the product of the given
    // value and the return value of the call with the decreased number
    return +!~-n || n * f(n - 1);
}

document.write(f(7));

Другие вопросы по теме