javascript syntaks arrays terminaler variabler. Konverter til en ekte matrise
I JavaScript, så vel som i andre programmeringsspråk, brukes forskjellige metoder for å arbeide med arrays.
Metoder forenkler konstruksjonen av logikk og dens implementering i et skript.
Nedenfor er grunnleggende metoder for arbeid med arrays i JS.
trykkPush()-metoden legger til en verdi på slutten av matrisen.
La arr = ; arr.push(312); console.log(arr); // →
popPop()-metoden fjerner siste element fra en matrise eller returnerer verdien.
La arr = ; arr.pop(); console.log(arr); // →
Ved å bruke muligheten til å få verdien av det siste elementet i en matrise som et eksempel, kan vi få bildeformatet:
La img = "https://example.com/img/navn.png"; la format = img.split(".").pop(); console.log(format); // → png console.log(img.split(".")); // → ["https://eksempel", "com/img/navn", "png"]
unshiftunshift metode() legger til et element i begynnelsen av matrisen.
La arr = ; arr.unshift(312); console.log(arr); // →
skifteShift()-metoden fjerner det første elementet fra matrisen.
La arr = ; arr.shift(); console.log(arr); // → ;
Du må forstå at når du bruker shift- og unshift-metodene, endrer hvert element i matrisen sin indeks. Dette kan redusere programkjøringen hvis matrisen er stor. deleSplit()-metoden brukes til å transformere en streng til en matrise. Split deler en streng i henhold til den angitte parameteren.
La str = "Anya, Masha, Sasha, Dasha"; // dette er en streng la arr = str.split(", "); console.log(arr); // → ["Anya", "Masha", "Sasha", "Dasha"] er en matrise
bli medjoin()-metoden kombinerer matriseelementer til en streng ved å bruke skilletegnet som er spesifisert i parameteren.
La arr = ["Notpad++", "Sublime", "VSCode"]; // dette er en matrise la str = arr.join(", "); console.log("Redaktører for kode: " + str); // → "Redaktører for kode: Notpad++, Sublime, VSCode"
skiveSlice()-metoden oppretter en ny matrise der den kopierer elementer fra kilden, fra elementet med indeksen til den første parameteren sendt til metoden, til elementet med indeksen til den andre parameteren.
For eksempel: slice(3, 7) vil returnere elementer med indeksene 3, 4, 5, 6. Elementet med indeks 7 vil ikke bli inkludert i matrisen.
Hvis en parameter med en negativ verdi sendes til slice(), returnerer den en ny matrise med antallet elementer spesifisert i parameteren, men allerede tatt fra slutten av den opprinnelige matrisen.
Slicemetoden endrer ikke den opprinnelige matrisen.
Her er noen eksempler på slice()-metoden i aksjon:
La arr = ["A", "B", "C", "D", "E", "F", "G"]; // Returnerer en matrise som inneholder elementer med indekser fra 2 til 5 console.log(arr.slice(2, 5)); // → ["C", "D", "E"] // Returnerer en ny matrise som inneholder elementer med indekser fra 3 til arr.length console.log(arr.slice(3)); // → ["D", "E", "F", "G"] // Returnerer en kopi av den originale matrisen console.log(arr.slice()); // → ["A", "B", "C", "D", "E", "F", "G"] // Returnerer en ny matrise som består av de tre siste elementene i den originale console.log (arr.skive (-3)); // → ["E", "F", "G"]
skjøteMetoden splice() modifiserer innholdet i en matrise ved å fjerne eksisterende elementer og/eller legge til nye.
Syntaks:
Array.splice(start, deleteCount[, item1[, item2[, ...]]])
Alternativer:
- start - Indeksen for å begynne å endre matrisen. Hvis den er større enn lengden på matrisen, vil den reelle indeksen settes til lengden på matrisen. Hvis negativ, spesifiserer indeksen til elementet fra slutten.
- deleteCount - Et heltall som indikerer antall gamle elementer som skal slettes fra matrisen. Hvis deleteCount er 0, slettes ingen elementer. I dette tilfellet må du spesifisere minst én nytt element. Hvis deleteCount mer mengde elementer som gjenstår i matrisen fra startindeksen, så slettes alle elementer til slutten av matrisen.
- itemN - Valgfrie parametere. Elementer som skal legges til matrisen. Hvis du ikke spesifiserer noe element, vil splice() ganske enkelt fjerne elementer fra matrisen.
Hvis antallet elementer som er spesifisert for å settes inn er forskjellig fra antallet elementer som skal fjernes, vil matrisen endre lengde etter anropet.
La arr = ["Barca", "Shakhtar", "Manchester United", "Milan", "Real", "Ajax", "Juventus"]; la nax = arr.splice(2, 3); arr.splice(2, 3); console.log(nax); // → ["Manchester United", "Milan", "Ekte"] console.log(arr); // → ["Barca", "Shakhtar"] arr.splice(1, 0, "Zenit", "CSKA", "Spartak"); console.log(arr); // → [Barça, Zenit, CSKA, Spartak, Shakhtar]
omvendtReverse()-metoden reverserer rekkefølgen til matriseelementene. Som et resultat blir det første elementet i matrisen det siste, og det siste elementet blir det første.
La arr = ; console.log(arr.reverse()); // → console.log(["Alice", "BG", "GO", "DDT"].reverce()); // → ["DDT", "GO", "BG", "Alice"]
kartMap()-metoden går gjennom elementene i matrisen, utfører spesifiserte handlinger på dem, og returnerer en kopi av matrisen med de endrede elementene.
I eksemplet nedenfor legger vi til hvert array-element indeksverdien til dette elementet (7 + 0, 2 + 1, 15 + 2, 4 + 3, 31 + 4):
La arr = ; la testMap = arr.map((element, indeks) => element + indeks); console.log(testMap); //
eller multipliser hver verdi av matrisen, for eksempel med 12
La arr = ; la testMap = arr.map(a => a * 12); console.log(testMap); // →
filterFilter()-metoden brukes til å filtrere matriser. Den itererer gjennom matrisen, og returnerer bare de elementene som passerer en gitt betingelse.
La oss for eksempel filtrere verdiene til en rekke tall, slik at bare de som er større enn 21
La arr = ; la testFilter = arr.filter(element => element > 21); console.log(testFilter); // →
Vær oppmerksom på at 21 ikke ble inkludert i matriseresultatet, siden betingelsen skulle returnere noe som er større enn 21. For at 21 skal inkluderes i matrisen setter vi betingelsen som større enn eller lik: element >= 21
redusereReducer()-metoden går sekvensielt gjennom elementene i matrisen, og akkumulerer mellomresultatet i henhold til funksjonen spesifisert i tilstanden til funksjonen. I sluttresultatet returnerer den bare én verdi.
Denne metoden brukes ofte for å finne summen av alle tallene i en matrise. Eksempel:
La arr = ; la summa = arr.reduce((acc, element) => acc + element); console.log(sum); // → 370
sortereSort()-metoden brukes til å sortere array-elementer i henhold til spesifiserte parametere.
Eksempel – la oss ta en rekke tall og sortere dem i stigende rekkefølge:
La arr = ; la testSortArr = arr.sort((a, b) => a - b); console.log(testSortArr); // →
inkludererInclusive()-metoden bestemmer om matrisen inneholder spesifikt element, returnerer sant eller usant avhengig av dette.
Eksempel på bruk av include() .
Her er et logisk uttrykk:
La dyr = "hund"; if (dyr == "katt" || dyr == "hund" || dyr == "løve" || dyr == "hest") ( // ........ )
Ved å bruke inkluderer metoden kan du skrive det slik:
La dyr = "hund"; const animals = ["katt", "hund", "løve", "hest"]; if (dyr.inkluderer(dyr)) ( // ........... )
Matriser
En matrise er en ordnet samling av verdier. Verdiene i en matrise kalles elementer, og hvert element er preget av en numerisk posisjon i matrisen, kalt en indeks. Arrays i JavaScript er utype: matriseelementer kan være av hvilken som helst type, og forskjellige elementer Den samme matrisen kan ha forskjellige typer. Matriseelementer kan til og med være objekter eller andre matriser, slik at du kan lage komplekse strukturer data, for eksempel arrays av objekter og arrays av arrays.
JavaScript-matriseindekser starter på null og bruker 32-bits heltall – det første elementet i matrisen har indeks 0. JavaScript-matriser er dynamiske: de kan vokse og krympe i størrelse etter behov; det er ikke nødvendig å deklarere faste matrisestørrelser når de opprettes, eller å tildele minne på nytt når størrelsene deres endres.
Arrays i JavaScript er en spesialisert form for objekter, og array-indekser betyr lite mer enn bare egenskapsnavn, som tilfeldigvis er heltall.
Opprette matriserDen enkleste måten å lage en matrise på er å bruke en bokstavelig, som er en enkel kommadelt liste over matriseelementer omgitt av firkantede parenteser. Verdiene i en matriseliteral trenger ikke å være konstanter - de kan være alle uttrykk, inkludert objektliteraler:
Var tom = ; // Tom array var tall = ; // Matrise med fem numeriske elementer var misc = [ 1.1, true, "a", ]; // 3 elementer forskjellige typer+ etterfølgende komma var base = 1024; var tabell = ; // Matrise med variabler var arrObj = [, ]; // 2 arrays inne som inneholder objekter
Array literal syntaks lar deg sette inn et valgfritt etterfølgende komma, dvs. den bokstavelige [,] samsvarer med en matrise med to elementer, ikke tre.
En annen måte å lage en matrise på er å kalle Array()-konstruktøren. Du kan kalle konstruktøren på tre forskjellige måter:
Kall konstruktøren uten argumenter:
Var arr = new Array();
I dette tilfellet vil det bli opprettet en tom matrise, tilsvarende det bokstavelige.
Ring konstruktøren med et enkelt numerisk argument som spesifiserer lengden på matrisen:
Var arr = ny Array(10);
I dette tilfellet vil en tom matrise med den angitte lengden bli opprettet. Denne formen for å kalle Array()-konstruktøren kan brukes til å forhåndstildele minne for en matrise hvis antallet elementer er kjent på forhånd. Merk at dette ikke lagrer noen verdier i matrisen.
Spesifiser eksplisitt verdiene til de to eller flere matriseelementene eller ett ikke-numerisk element i konstruktørkallet:
Var arr = new Array(5, 4, 3, 2, 1, "test");
I dette tilfellet blir argumentene til konstruktøren verdiene til elementene i den nye matrisen. Å bruke array-literals er nesten alltid enklere enn å bruke Array()-konstruktøren.
Array-elementer åpnes ved å bruke operatøren. Til venstre for parentesene må det være en matrisereferanse. Inne i parentesen må det være et vilkårlig uttrykk som returnerer en ikke-negativ heltallsverdi. Denne syntaksen er nyttig for både å lese og skrive verdien til et matriseelement. Derfor er alle følgende JavaScript-instruksjoner gyldige:
// Lag en matrise med ett element var arr = ["verden"]; // Les element 0 var verdi = arr; // Skriv verdien til element 1 arr = 3,14; // Skriv verdien til element 2 i = 2; arr[i] = 3; // Skriv verdien til element 3 arr = "hei"; // Les element 0 og 2, skriv verdien til element 3 arr] = arr;
La meg minne deg på at matriser er en spesialisert type objekt. Firkantede parenteser, som brukes for å få tilgang til array-elementer, fungerer nøyaktig det samme som firkantede parenteser, brukes for å få tilgang til objektegenskaper. JavaScript-tolken konverterer de numeriske indeksene i parentes til strenger - indeks 1 blir strengen "1" - og bruker deretter strengene som egenskapsnavn.
Det er ikke noe spesielt med å konvertere numeriske indekser til strenger: du kan gjøre det samme med vanlige objekter:
Var obj = (); // Lag et enkelt objekt obj = "en"; // Indekser det med heltall
Saken med arrays er at når du bruker egenskapsnavn som er ikke-negative heltall, bestemmer arrays automatisk verdien av length-egenskapen. For eksempel, ovenfor opprettet vi en array arr med et enkelt element. Den tildelte deretter verdier til elementene i indeksene 1, 2 og 3. Som et resultat av disse operasjonene endret verdien til arrayens lengdeegenskap til 4.
Du bør tydelig skille indekser i en matrise fra objektegenskapsnavn. Alle indekser er egenskapsnavn, men bare egenskaper med navn representert med heltall er indekser. Alle matriser er objekter, og du kan legge til egenskaper til dem med hvilket som helst navn. Hvis du imidlertid trykker på egenskaper som er matriseindekser, reagerer matriser ved å oppdatere verdien til lengdeegenskapen etter behov.
Vær oppmerksom på at negative og ikke-heltall kan brukes som matriseindekser. I dette tilfellet konverteres tall til strenger, som brukes som egenskapsnavn.
Legge til og fjerne matriseelementerVi har allerede sett at den enkleste måten å legge til elementer i en matrise på er å tilordne verdier til nye indekser. Du kan også bruke push()-metoden for å legge til ett eller flere elementer på slutten av en matrise:
Var arr = ; // Lag en tom matrise arr.push("null"); // Legg til en verdi på slutten arr.push("one",2); // Legg til ytterligere to verdier
Du kan også legge til et element på slutten av matrisen ved å tilordne en verdi til arr-elementet. Unshift()-metoden kan brukes til å sette inn et element i begynnelsen av en matrise, som flytter eksisterende elementer i matrisen til høyere indeksposisjoner.
Du kan slette matriseelementer ved å bruke delete-operatoren, akkurat som vanlige objektegenskaper:
Var arr = ; slette arr; 2 i arr; // false, indeks 2 i matrisen er ikke definert arr.length; // 3: delete-operatoren endrer ikke lengdeegenskapen til matrisen
Å fjerne et element ligner (men litt annerledes) som å tildele verdien udefinert til det elementet. Legg merke til at bruk av delete-operatoren på et array-element ikke endrer verdien til length-egenskapen eller flytter ned elementer med høyere indekser for å fylle tomrommet ved å slette elementet.
Det er også mulig å fjerne elementer på slutten av en matrise ved ganske enkelt å tilordne en ny verdi til length-egenskapen. Matriser har en pop()-metode (det motsatte av push()), som reduserer lengden på matrisen med 1 og returnerer verdien til det fjernede elementet. Det er også en shift()-metode (det motsatte av unshift()), som fjerner elementet i begynnelsen av matrisen. I motsetning til delete-operatoren, flytter shift()-metoden alle elementer ned til en posisjon under deres gjeldende indeks.
Til slutt er det en flerbruks spleise()-metode som lar deg sette inn, fjerne og erstatte elementer av arrays. Den endrer verdien på lengdeegenskapen og skifter matriseelementer til lavere eller høyere indekser etter behov. Vi vil se på alle disse metodene litt senere.
Flerdimensjonale arraysJavaScript støtter ikke "ekte" flerdimensjonale arrays, men lar deg simulere dem godt ved å bruke arrays av arrays. For å få tilgang til et dataelement i en rekke matriser, bruk bare operatoren to ganger.
Anta for eksempel at den variable matrisen er en rekke matriser med tall. Hvert element i matrise[x] er en rekke tall. For å få tilgang til et spesifikt tall i en matrise kan du bruke uttrykksmatrisen[x][y]. Nedenfor er spesifikt eksempel, Hvor todimensjonal matrise brukt som multiplikasjonstabell:
// Lag en flerdimensjonal array var table = new Array(10); // Det er 10 rader i tabellen for(var i = 0; i
Metoder i Array-klassenECMAScript 3-standarden definerer Array.prototype som et sett praktiske funksjoner for arbeid med matriser, som er tilgjengelige som metoder for en hvilken som helst matrise. Disse metodene vil bli presentert i de følgende underavsnittene.
join() metodeMetoden Array.join() konverterer alle matriseelementer til strenger, kobler dem sammen og returnerer den resulterende strengen. Som et valgfritt argument kan du sende en streng til metoden som skal brukes til å skille elementene i resultatstrengen. Hvis en avgrensningsstreng ikke er spesifisert, brukes et komma. For eksempel resulterer følgende fragment i strengen "1,2,3":
Var arr = ; arr.join(); // "1,2,3" arr.join("-"); // "1-2-3"
reverse() metodeMetoden Array.reverse() reverserer rekkefølgen på elementene i en matrise og returnerer en omorganisert matrise. Permutasjonen utføres direkte i den originale matrisen, dvs. Denne metoden oppretter ikke en ny matrise med de omorganiserte elementene, men omorganiserer dem i en allerede eksisterende matrise. Følgende kodebit, ved bruk av metodene reverse() og join(), resulterer for eksempel i strengen "3,2,1":
Var arr = ; arr.reverse().join(); // "3,2,1"
sort() metodeMetoden Array.sort() sorterer elementene i kildematrisen og returnerer den sorterte matrisen. Hvis sort()-metoden kalles uten argumenter, gjøres sorteringen i alfabetisk rekkefølge (elementer konverteres midlertidig til strenger for sammenligning om nødvendig). Udefinerte elementer flyttes til slutten av matrisen.
For å sortere i annen rekkefølge enn alfabetisk, til sorteringsmetoden() kan du sende sammenligningsfunksjonen som et argument. Denne funksjonen angir hvilke av de to argumentene som skal komme først i den sorterte listen. Hvis det første argumentet må komme før det andre, må sammenligningsfunksjonen returnere et negativt tall. Hvis det første argumentet skal følge det andre i en sortert matrise, må funksjonen returnere et tall større enn null. Og hvis to verdier er likeverdige (det vil si at rekkefølgen deres spiller ingen rolle), skal sammenligningsfunksjonen returnere 0:
Var arr = ; arr.sort(); // alfabetet rekkefølge: 1111, 222, 33, 4 arr.sort(function(a,b) ( // Numerisk rekkefølge: 4, 33, 222, 1111 returner a-b; // Returnerer 0 // avhengig av sorteringsrekkefølgen til a og b ) ); // Sorter i motsatt retning, fra største til minste arr.sort(function(a,b) (retur b-a));
Legg merke til hvor praktisk det er å bruke en ikke navngitt funksjon i denne kodebiten. Sammenligningsfunksjonen brukes kun her, så det er ikke nødvendig å gi den et navn.
concat()-metodenArray.concat()-metoden oppretter og returnerer en ny matrise som inneholder elementene i den opprinnelige matrisen som concat() ble kalt og verdiene til eventuelle argumenter som ble sendt til concat(). Hvis noen av disse argumentene i seg selv er en matrise, legges elementene til den returnerte matrisen. Det skal imidlertid bemerkes at det ikke er noen rekursiv transformasjon av en matrise av matriser til en endimensjonal matrise. Concat()-metoden endrer ikke den opprinnelige matrisen. Nedenfor er noen eksempler:
Var arr = ; arr.concat(4, 5); // Returner arr.concat(); // Return arr.concat(,) // Return arr.concat(4, ]) // Return ]
slice()-metodenMetoden Array.slice() returnerer en del, eller undermatrise, av den angitte matrisen. De to metodeargumentene spesifiserer starten og slutten av det returnerte fragmentet. Den returnerte matrisen inneholder elementet hvis nummer er spesifisert i det første argumentet, pluss alle påfølgende elementer, opp til (men ikke inkludert) elementet hvis nummer er spesifisert i det andre argumentet.
Hvis bare ett argument er gitt, inneholder den returnerte matrisen alle elementene fra startposisjonen til slutten av matrisen. Hvis noen av argumentene er negative, bestemmer det elementnummeret i forhold til slutten av matrisen. Så argument -1 tilsvarer det siste elementet i matrisen, og argument -3 tilsvarer det tredje elementet i matrisen fra slutten. Her er noen eksempler:
Var arr = ; arr.slice(0,3); // Returner arr.slice(3); // Returner arr.slice(1,-1); // Returner arr.slice(-3,-2); // Komme tilbake
spleise() metodeMetoden Array.splice() er universell metode, som setter inn eller fjerner elementer fra en matrise. I motsetning til slice()- og concat()-metodene, modifiserer splice()-metoden den opprinnelige matrisen den ble kalt opp på. Merk at metodene splice() og slice() har svært like navn, men utfører helt forskjellige operasjoner.
Metoden splice() kan fjerne elementer fra en matrise, sette inn nye elementer eller gjøre begge deler samtidig. Matriseelementer forskyves etter behov for å lage en kontinuerlig sekvens etter innsetting eller sletting.
Det første argumentet til spleise()-metoden spesifiserer posisjonen i matrisen som innsetting og/eller sletting skal utføres fra. Det andre argumentet spesifiserer antall elementer som skal fjernes (klippes) fra matrisen. Hvis det andre argumentet utelates, fjernes alle matriseelementer fra det spesifiserte til slutten av matrisen. Metoden splice() returnerer en matrise med de fjernede elementene eller (hvis ingen elementer ble fjernet) en tom matrise.
De to første argumentene til splice()-metoden spesifiserer array-elementene som skal fjernes. Disse argumentene kan følges av et hvilket som helst antall tilleggsargumenter som spesifiserer elementene som skal settes inn i matrisen, og starter på posisjonen spesifisert i det første argumentet.
Var arr = ; arr.splice(4); // Return , arr = arr.splice(1,2); // Return , arr = arr.splice(1,1); // Komme tilbake ; arr = arr = ; arr.splice(2,0,"a","b"); // Komme tilbake ; arr =
push() og pop() metoderPush()- og pop()-metodene lar deg jobbe med arrays som om de var stabler. Push()-metoden legger til ett eller flere nye elementer på slutten av matrisen og returnerer dens nye lengde. Pop()-metoden utfører den omvendte operasjonen - den fjerner det siste elementet i matrisen, reduserer lengden på matrisen og returnerer verdien den fjernet. Merk at begge disse metodene endrer den originale matrisen i stedet for å lage en modifisert kopi av den.
unshift() og shift() metoderMetodene unshift() og shift() oppfører seg nesten på samme måte som push() og pop(), bortsett fra at de setter inn og fjerner elementer i begynnelsen av matrisen i stedet for på slutten. Unshift()-metoden flytter eksisterende elementer til større indekser for å frigjøre plass, legger til elementet eller elementene i begynnelsen av matrisen, og returnerer den nye lengden på matrisen. Shift()-metoden fjerner og returnerer det første elementet i matrisen, og flytter alle påfølgende elementer ned én posisjon for å ta opp plassen som ble frigjort i begynnelsen av matrisen.
- Oversettelse
De fleste applikasjoner som utvikles i disse dager krever interaksjon med en slags datasett. Håndtering av elementer i samlinger er en vanlig operasjon som du sannsynligvis har vært borti. Når du for eksempel jobber med matriser, kan du uten å tenke over bruke en vanlig for-løkke, som ser omtrent slik ut: for (var i=0; i< value.length; i++){} . Однако, лучше, всё-таки, смотреть на вещи шире.
Anta at vi må vise en liste over produkter, og om nødvendig dele den inn i kategorier, filtrere den, utføre et søk på den, endre denne listen eller dens elementer. Kanskje du raskt må utføre noen beregninger som involverer elementene i en liste. La oss si at du må legge til noe med noe, multiplisere noe med noe. Er det mulig å finne verktøy i JavaScript som lar deg løse slike problemer raskere og mer praktisk enn å bruke en vanlig for loop?
Faktisk er det slike fasiliteter i JavaScript. Noen av dem er diskutert i materialet, oversettelsen som vi presenterer for din oppmerksomhet i dag. Spesielt snakker vi om spredningsoperatoren, for...of loop, og include(), some(), every(), filter(), map() og reduce() metodene. Vi snakker for det meste om arrays her, men teknikkene som diskuteres her er generelt egnet for arbeid med andre typer objekter.
Det skal bemerkes at anmeldelser av moderne tilnærminger til JS-utvikling vanligvis inkluderer eksempler utarbeidet ved hjelp av pilfunksjoner. Kanskje du ikke bruker dem så ofte – kanskje fordi du ikke liker dem, kanskje fordi du ikke vil bruke for mye tid på å lære noe nytt, eller kanskje de rett og slett ikke er riktige for deg. Derfor, her, i de fleste situasjoner, vil to alternativer for å utføre de samme handlingene vises: bruk normale funksjoner(ES5) og bruk av pilfunksjoner (ES6). For de som er nye til å jobbe med pilfunksjoner, er ikke pilfunksjoner det samme som funksjonserklæringer og funksjonsuttrykk. Du bør ikke erstatte det ene med det andre. Spesielt skyldes dette at i ordinær og pilfunksjoner nøkkelord dette oppfører seg annerledes.
- Det er enkelt og rask måte"trekk ut" de individuelle elementene fra en matrise.
- Denne operatøren er egnet for arbeid med array- og objektliteral.
- Dette er en rask og intuitiv metode for å jobbe med funksjonsargumenter.
- Utvidelsesoperatøren tar ikke mye plass i koden - den ser ut som tre prikker (...).
- Dette er en enkel måte å legge til eller oppdatere samlingsobjekter på.
- For...of-løkken lar deg utføre ulike beregninger ved hjelp av elementer (summering, multiplikasjon og så videre).
- Den er praktisk å bruke når du trenger å sjekke eventuelle forhold.
- Bruken fører til å skrive renere og mer lesbar kode.
- Inclusive()-metoden er nyttig for å lage enkle datainnhentingsmekanismer.
- Det gir utvikleren en intuitiv måte å bestemme tilstedeværelsen av visse data i en matrise.
- Den er praktisk å bruke i betingede uttrykkå modifisere, filtrere elementer og utføre andre operasjoner.
- Bruken av den fører til forbedret kodelesbarhet.
- Some()-metoden lar oss sjekke om matrisen inneholder minst ett av elementene vi er interessert i.
- Den utfører en tilstandstest ved å bruke funksjonen som er sendt til den.
- Denne metoden er praktisk å bruke.
- Every()-metoden lar deg sjekke om alle elementene i en matrise oppfyller en betingelse.
- Betingelser kan settes ved hjelp av funksjoner.
- Det fremmer en deklarativ tilnærming til programmering.
- Filter()-metoden unngår modifikasjon av den opprinnelige matrisen.
- Det lar deg bli kvitt unødvendige elementer.
- Det forbedrer kodelesbarheten.
- Map()-metoden unngår behovet for å endre elementene i den opprinnelige matrisen.
- Den kan brukes til å enkelt endre array-elementer.
- Det forbedrer kodelesbarheten.
- Ved å bruke reduce()-metoden kan du beregne summen eller gjennomsnittet av elementene i en matrise.
- Denne metoden øker hastigheten og forenkler beregningene.
- Oversettelse
- I. Iterering over ekte matriser
- for hver metode og relaterte metoder
- for løkke
- Riktig bruk for ... i loop
- for...of loop (implisitt bruk av iterator)
- Eksplisitt bruk av iterator
- Bruke metoder for å iterere over ekte matriser
- Konverter til en ekte matrise
- Et notat om kjøretidsobjekter
Eksempel på bruk:
var a = ["a", "b", "c"]; a.forEach(function(entry) ( console.log(entry); ));
Generelt krever bruk av forEach å koble til es5-shim-emuleringsbiblioteket for nettlesere som ikke støtter denne metoden. Disse inkluderer IE 8 og nyere tidlige versjoner, som fortsatt er i bruk her og der.
Fordelen med forEach er at det ikke er nødvendig å deklarere lokale variabler for å lagre indeksen og verdien til det gjeldende matriseelementet, siden de automatisk sendes til funksjonen Ring tilbake(tilbakeringing) som argumenter.
Hvis du er bekymret for de mulige kostnadene ved å ringe tilbake på hvert element, ikke bekymre deg og les dette.
ForEach er designet for å iterere over alle elementene i en matrise, men i tillegg til det tilbyr ES5 flere nyttige metoder for å iterere gjennom alle eller noen elementer pluss å utføre noen handlinger på dem:
- every-returner true hvis for hvert element i matrisen tilbakeringingen returnerer en verdi som kan konverteres til true.
- noen - returnerer sann hvis for minst ett element i matrisen tilbakeringingen returnerer en verdi som kan konverteres til sann.
- filter – oppretter en ny matrise som inkluderer de elementene i den opprinnelige matrisen som tilbakeringingen returnerer sann for.
- kart - oppretter en ny matrise bestående av verdiene som returneres av tilbakeringingen.
- reduser - reduserer en matrise til en enkelt verdi, og bruker en tilbakeringing til hvert matriseelement etter tur, og starter med det første (kan være nyttig for å beregne summen av matriseelementer og andre oppsummeringsfunksjoner).
- reduceRight - fungerer på samme måte som redusere, men itererer gjennom elementer i omvendt rekkefølge.
Var a = ["a", "b", "c"]; var indeks; for (indeks = 0; indeks< a.length; ++index) {
console.log(a);
}
Hvis lengden på arrayet er konstant gjennom hele sløyfen, og selve løkken tilhører en ytelseskritisk del av koden (noe som er usannsynlig), kan du bruke den "mer optimale" versjon for med å lagre lengden på matrisen:
Var a = ["a", "b", "c"]; var indeks, len; for (indeks = 0, len = a.lengde; indeks< len; ++index) {
console.log(a);
}
I teorien skal denne koden kjøre litt raskere enn den forrige.
Hvis rekkefølgen på elementene ikke er viktig, kan du gå enda lenger når det gjelder optimalisering og bli kvitt variabelen for lagring av lengden på matrisen, endre rekkefølgen på søket til motsatt:
Var a = ["a", "b", "c"]; var indeks; for (indeks = a.length - 1; indeks >= 0; --index) ( console.log(a); )
Imidlertid, i moderne motorer JavaScript-optimaliseringsspill som disse betyr vanligvis ingenting.
Men i noen tilfeller, for eksempel å iterere over sparsomme matriser, kan for...in være nyttig, så lenge du tar forholdsregler, som vist i eksemplet nedenfor:
// a - sparsom array var a = ; a = "a"; a = "b"; a = "c"; for (var nøkkel i a) ( if (a.hasOwnProperty(nøkkel) && /^0$|^\d*$/.test(nøkkel) && nøkkel