Lær datavitenskap med JavaScript Del 3, Loops

Introduksjon

Anta at du har fått oppgaven å skrive et program som viser tallene 1-100. En måte du kan oppnå dette på er å skrive 100 console.log uttalelser. Men jeg er sikker på at du ikke ville fordi du ville blitt lei av den niende eller tiende linjen.  

Den eneste delen som endres i hver setning er nummeret, så det bør være en måte å skrive kun en setning på. Og det er med sløyfer. Loops lar oss utføre et sett med trinn i en kodeblokk gjentatte ganger.  

innhold

  • Mens looper
  • Gjør-mens looper
  • For sløyfer
  • arrays
  • For-in looper
  • For-of-løkker
  • Anmeldelse
  • ressurser

Mens Loops

Mens looper vil utføre et sett med uttalelser gjentatte ganger, mens en viss tilstand er sant. Når tilstanden er feil, avslutter programmet sløyfen. Denne typen loop tester tilstanden før du utfører en iterasjon. En iterasjon er en utførelse av sløyfens kropp. Følgende eksempel vil ikke vise noe fordi vår tilstand er feil.

la sulten = false; mens (sulten) console.log ("eat"); 

Dette er den generelle formen for en stundsløyfe:

mens (tilstand) setning; uttalelse; etc. 

En ting å være forsiktig med når du bruker mens sløyfer skaper løkker som aldri slutter. Dette skjer fordi tilstanden aldri blir falsk. Hvis det skjer med deg, vil programmet ditt krasje. Eksempel:

la sulten = sant; mens (sulten) console.log ("eat"); 

Oppgave

Hvor mange ganger vil kroppen til denne sløyfen bli utført:

la jeg = 0; mens jeg < 10)  console.log("Hello, World"); i += 1; 

Gjør-mens looper

En runde-løkke vil utføre selve setningen først, og deretter sjekke tilstanden. Denne typen loop er nyttig når du vet at du vil kjøre koden minst en gang. Følgende eksempel vil vise "spise" en gang, selv om tilstanden er feil.

la sulten = false; gjør console.log ("eat");  mens (sulten);

Dette er den generelle formen for en stund-loop:

gjør setning; uttalelse; etc. mens (tilstand);

Oppgave

Skriv en do-while loop som viser tallene 1-10.

For Loops

En for-loop vil gjenta utførelsen av en kodeblokk for et bestemt antall ganger. Følgende eksempel viser tallene 1-10:

for (la jeg = 1; jeg <= 10; i++)  console.log(i);  

Dette er den generelle formen for en for-loop:

for (initial; betingelse; trinn) setning; uttalelse; etc. 

Første er et uttrykk som setter verdien av vår variabel. Tilstand er et uttrykk som må være sant for uttalelsene å utføre. Og skritt er et uttrykk som øker verdien av vår variabel.

Et programmeringsmønster er å bruke en forløp for å oppdatere verdien av en variabel med seg selv og en ny verdi. Dette eksemplet summerer tallene 1-10:

la x = 0; for (la jeg = 1; jeg <= 10; i++)  x += i;  console.log(x) //55

De += er en oppdragsoperatør som legger til en verdi tilbake til en variabel. Dette er en liste over alle oppdragsoperatørene:

Operatør
Eksempel
Tilsvarende
+= x + = 2
 x = x + 2
-= x - = 2
x = x - 2
* = x * = 2
x = x * 2
/ = x / = 2
x = x / 2
% = x% = 2
x = x% 2

Oppgave 

Skriv en for sløyfe som beregner faktoren av et tall. Faktoren til et tall n er produktet av alle heltallene fra 1 til n. For eksempel 4! (4 faktorial) er 1 x 2 x 3 x 4 som tilsvarer 24.

arrays

En matrise er et objekt som inneholder en liste over elementer, kalt elementer, som er tilgjengelige av indeksen. Indeksen er plasseringen av elementet i matrisen. Det første elementet er på 0-indeksen. Følgende er noen vanlige array operasjoner.

Opprett en tom rekkefølge:

la arr = [];

Initialiser en array med verdier:

la arr = [1, 2, "Hei", "Verden"]; 

Få et element fra en matrise:

la arr = [1, 2, "Hei", "Verden"]; arr [0] // 1 arr [2] // "Hei" 

Oppdater et element i en matrise:

la arr = [1, 2, "Hei", "Verden"]; arr [2] = 3; // [1, 2, 3, "Verden"] 

Loop over en array:

la arr = [1, 2, "Hei", "Verden"]; for (la jeg = 0; jeg < arr.length; i++)  console.log(arr[i]); 

Et todimensjonalt array er en matrise hvis elementer er arrays. Eksempel:

la arr = [[1, 2], ["Hello", "World"]]; console.log (arr [0] [1]); // 2

Slik løser du over arrayet og viser hvert element:

for (la jeg = 0; jeg < arr.length; i++)  for (let j = 0; j < arr[i].length; j++)  console.log(arr[ i ][ j ]);  

Oppgave 

Hvilket element vises når jeg = 1 og j = 0 i det ovennevnte for sløyfe?

For-In Loop

Denne sløyfen lar oss løpe gjennom tastene i et objekt. Et objekt er en datastruktur som har taster kartlagt til verdier. Her er noen vanlige operasjoner som kan utføres på et objekt.

Opprett en tom gjenstand:

la obj = ;

Initialiser et objekt med verdier:

la obj = foo: "Hei", bar: "World";

Få en eiendom fra et objekt:

la obj = foo: "Hei", bar: "World"; obj.foo; // "Hei" obj ["foo"]; //"Hallo"

Oppdater en egenskap i et objekt:

la obj = foo: "Hei", bar: "World"; obj.foo = "hei" obj ["foo"] = "hei"

Loop over nøklene til et objekt:

for (la nøkkel inn obj) console.log (nøkkel); 

Oppgave

Hva gjør det ovenfor for loop-visning gitt obj = foo: "Hei", bar: "World"?

For-Of Loop

Denne sløyfen gjør at vi slår over verdiene av iterable objekter. Eksempler på iterable objekter er arrays og strenger.

Loop over en array:

la arr = ["foo", "bar", "baz"]; for (la elem of arr) console.log (elem);  // foo bar baz

Loop over a string:

la str = "Hei"; for (la char av str) console.log (char);  //'Hallo'

Oppgave

Bruk et av løkkene, skriv et program som viser dette trappemønsteret:

# # # # #

Anmeldelse

Loops lar oss redusere duplisering i vår kode. Mens looper lar oss gjenta en handling til en tilstand er feil. En runde løp vil utføre minst en gang. For løkker la oss gjenta en handling til vi kommer til slutten av en telling. For-in-sløyfen er utformet slik at vi får tilgang til tastene i et objekt. For-of-loop er designet slik at vi kan få verdien av et iterbart objekt. 

Neste, i del 4, lærer vi om funksjoner.

ressurser

  • repl.it
  • ES6 spesifikasjon
  • Du vet ikke JS: ES6 og Beyond