Обяснени цикли на JavaScript: за цикъл, докато цикъл, направете ... докато цикъл и др

Циклите се използват в JavaScript за изпълнение на повтарящи се задачи въз основа на условие. Условията обикновено се връщат trueили falseкогато се анализират. Цикълът ще продължи да работи, докато дефинираното условие не се върне false.

Трите най-често срещани типа цикли са

  • за
  • докато
  • направи докато

Можете да напишете js for, js whileили js do whileда получите повече информация за всеки от тях. Нека ги разгледаме по-подробно сега и някои вариации.

за цикъл

Синтаксис

for ([initialization]); [condition]; [final-expression]) { // statement }

forИзявлението на javascript се състои от три израза и изявление:

Описание

  • инициализация - Изпълнете преди първото изпълнение на цикъла. Този израз обикновено се използва за създаване на броячи. Създадените тук променливи се обхващат до цикъла. След като цикълът завърши, той се изпълнява.
  • условие - израз, който се проверява преди изпълнението на всяка итерация. Ако е пропуснат, този израз се оценява като истина. Ако оценява на true, операторът на цикъла се изпълнява. Ако оцени като false, цикълът спира.
  • final-expression - израз, който се изпълнява след всяка итерация. Обикновено се използва за увеличаване на брояч. Но може да се използва и за намаляване на брояч.
  • изявление - Код, който да се повтори в цикъла

всеки от тези три израза или изявлението може да бъде пропуснат. За цикли обикновено се използват за преброяване на определен брой итерации, за да се повтори изявление. Използвайте breakизраз, за ​​да излезете от цикъла, преди изразът на условието да се изчисли на false.

Общи клопки

Превишаване на границите на масив

Когато индексирате над масив много пъти, е лесно да надхвърлите границите на масива (напр. Опитайте да препратите към 4-ия елемент от масив от 3 елемента).

 // This will cause an error. // The bounds of the array will be exceeded. var arr = [ 1, 2, 3 ]; for (var i = 0; i <= arr.length; i++) { console.log(arr[i]); } output: 1 2 3 undefined

Има два начина да коригирате този код. Задайте условието на или i < arr.lengthилиi <= arr.length - 1

Примери

Итерация през цели числа от 0-8

for (var i = 0; i < 9; i++) { console.log(i); } output: 0 1 2 3 4 5 6 7 8

Прекъсване на цикъл, преди изразът на условието да е false

for (var elephant = 1; elephant < 10; elephant+=2) { if (elephant === 7) { break; } console.info('elephant is ' + elephant); } output: elephant is 1 elephant is 3 elephant is 5

за ... в цикъл

В for...inизявлението се повтаря, през enumerable свойства на даден обект, в произволен ред. За всяко отделно свойство могат да се изпълняват изрази.

for (variable in object) { ... }

Required / OptionalParameterDescriptionRequiredVariable Различно име на свойство се присвоява на променлива на всяка итерация.

Примери

// Initialize object. a = { "a": "Athens", "b": "Belgrade", "c": "Cairo" } // Iterate over the properties. var s = "" for (var key in a) { s += key + ": " + a[key]; s += "

"; } document.write (s); // Output: // a: Athens // b: Belgrade // c: Cairo // Initialize the array. var arr = new Array("zero", "one", "two"); // Add a few expando properties to the array. arr["orange"] = "fruit"; arr["carrot"] = "vegetable"; // Iterate over the properties and elements. var s = ""; for (var key in arr) { s += key + ": " + arr[key]; s += "

"; } document.write (s); // Output: // 0: zero // 1: one // 2: two // orange: fruit // carrot: vegetable // Efficient way of getting an object's keys using an expression within the for-in loop's conditions var myObj = {a: 1, b: 2, c:3}, myKeys = [], i=0; for (myKeys[i++] in myObj); document.write(myKeys); //Output: // a // b // c

за ... на цикъл

Операторът for...ofсъздава цикъл, итериращ се върху обекти, подлежащи на итерация (включително Array, Map, Set, Arguments object и т.н.), като извиква персонализирана итерационна кука с изрази, които трябва да бъдат изпълнени за стойността на всяко отделно свойство.

 for (variable of object) { statement }

ОписаниеvariableOn на всяка итерация стойността на различно свойство се присвоява на variable.objectObject, чиито изброими свойства се итерират.

Примери

Масив

 let arr = [ "fred", "tom", "bob" ]; for (let i of arr) { console.log(i); } // Output: // fred // tom // bob

Карта

 var m = new Map(); m.set(1, "black"); m.set(2, "red"); for (var n of m) { console.log(n); } // Output: // 1,black // 2,red

Комплект

 var s = new Set(); s.add(1); s.add("red"); for (var n of s) { console.log(n); } // Output: // 1 // red

Аргументи обект

 // your browser must support for..of loop // and let-scoped variables in for loops function displayArgumentsObject() { for (let n of arguments) { console.log(n); } } displayArgumentsObject(1, 'red'); // Output: // 1 // red

докато цикъл

Цикълът while започва с оценка на състоянието. Ако условието е вярно, изразът (ите) се изпълняват. Ако условието е невярно, изразите се изпълняват. След това цикълът while завършва.

Here is the syntax for while loop:

Syntax:

while (condition) { statement(s); }

statement(s): A statement that is executed as long as the condition evaluates to true.

condition: Here, condition is a Boolean expression which is evaluated before each pass through the loop. If this condition evaluates to true, statement(s) is/are executed. When condition evaluates to false, execution continues with the statement after the while loop.

Example:

 var i = 1; while (i < 10) { console.log(i); i++; // i=i+1 same thing } Output: 1 2 3 4 5 6 7 8 9

How to Iterate with JavaScript While Loops

While loops will run as long as the condition inside the ( ) is true. Example:

while(condition){ code... }

Hint 1:

Use a iterator variable such as i in your condition

var i = 0; while(i <= 4){ }

Spoiler Alert Solution Ahead!

Solution:

// Setup var myArray = []; // Only change code below this line. var i = 0; while (i <= 4){ myArray.push(i); i++; }

Do...while loop

The do...while loop is closely related to while loop. In the do while loop, the condition is checked at the end of the loop.

Here is the syntax for do...while loop:

Syntax:

 do { *Statement(s);* } while (*condition*);

statement(s): A statement that is executed at least once before the condition or Boolean expression is evaluated and is re-executed each time the condition evaluates to true.

condition: Here, a condition is a Boolean expression. If Boolean expression evaluates to true, the statement is executed again. When Boolean expression evaluates to false, the loops ends.

Example:

var i = 0; do { i = i + 1; console.log(i); } while (i < 5); Output: 1 2 3 4 5

How to Iterate with JavaScript Do…While Loops

  • Do...While loops makes sure that the code is executed at least once, and after the execution, if the condition inside the while() is true, it continues with the loop, otherwise it stop.

Solution:

var myArray = []; var i = 10; do { myArray.push(i); i++; } while(i <= 10);