JavaScripti aasad on lahti seletatud: aasaks, aasaks, aga ... aasaks ja muuks

Silmuseid kasutatakse JavaScripti tingimustel põhinevate korduvate ülesannete täitmiseks. Tingimused tavaliselt taastuvad truevõi neid falseanalüüsitakse. Silmus jätkab töötamist seni, kuni määratletud tingimus naaseb false.

Kolm kõige tavalisemat tüüpi silmuseid on

  • eest
  • samas
  • tee samas

Sa võid kirjutada js for, js whilevõi js do whilesaada rohkem infot mõni neist. Vaatame neid ja mõningaid variatsioone nüüd üksikasjalikumalt.

silmuse jaoks

Süntaks

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

Javascripti forlause koosneb kolmest avaldisest ja avaldusest:

Kirjeldus

  • initsialiseerimine - käivitage enne tsükli esimest käivitamist. Seda väljendit kasutatakse tavaliselt loendurite loomiseks. Siin loodud muutujate skaala ulatub tsüklini. Kui tsükkel on selle täitmise lõpetanud, need hävitatakse.
  • tingimus - avaldis, mida kontrollitakse enne iga iteratsiooni käivitamist. Kui see välja jätta, on selle väljendi väärtus tõene. Kui selle väärtus on tõene, käivitatakse tsükli lause. Kui selle väärtus on vale, peatub silmus.
  • lõplik avaldis - avaldis, mida käitatakse iga korduse järel. Tavaliselt kasutatakse loenduri suurendamiseks. Kuid seda saab kasutada ka loenduri vähendamiseks.
  • lause - tsüklis korratav kood

mis tahes neist kolmest avaldisest või avaldusest võib välja jätta. Silmuste jaoks kasutatakse tavaliselt lause kordamiseks teatud arvu korduste lugemist. Kasutage breaklauset silmusest väljumiseks enne, kui tingimuse avaldis hindab valeks.

Levinud lõkse

Massiivi piiride ületamine

Mitu korda massiivi kohal indekseerimisel on massiivi piire lihtne ületada (nt proovige viidata 3 elemendilise massiivi neljandale elemendile).

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

Selle koodi parandamiseks on kaks võimalust. Määrake tingimuseks kas i < arr.lengthvõii <= arr.length - 1

Näited

Korduvad täisarvude vahemikus 0–8

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

Enne tingimuse avaldise valeteavet murdke silmusest välja

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

jaoks ... silmuses

for...inAvaldus korratakse üle loetletavat omadusi objekti, suvalises järjekorras. Iga eraldiseisva atribuudi korral saab avaldusi täita.

for (variable in object) { ... }

Required / OptionalParameterDescriptionRequiredVariable Igale iteratsioonile määratakse muutujale erinev atribuudi nimi. OptionalObjectObject, mille loendatavad omadused on itereeritud.

Näited

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

... silmuse jaoks

for...ofAvaldus tekitab loop itereerimine üle iterable objektide (sh Array, kaart, Set, argumendid objekti ja nii edasi), tuginedes kohandatud iteratsiooni konks avaldused täide viia väärtuse iga konkreetse vara.

 for (variable of object) { statement }

Igal iteratsioonil määratakse muutujale.objectObject, mille loendatavad omadused on itereeritud, erineva atribuudi väärtus.

Näited

Massiiv

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

Kaart

 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

Määra

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

Argumendid objekt

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

samas silmus

Ajasilmus algab seisundi hindamisest. Kui tingimus on tõene, täidetakse lause (d). Kui tingimus on vale, ei täideta avaldust (avaldusi). Pärast seda, kui silmus lõpeb.

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...Whilesilmuseid tagab, et koodi täitmisel vähemalt kord ja pärast täitmist, kui tingimus sees while()on tõsi , jätkab ta loop, muidu lõpetada.

Lahendus:

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