3 ting du ikke vet om JavaScript-arrays
arrays er en mye brukt funksjon i programmeringsspråk; de er spesielle variabler som kan brukes til å lagre flere verdier samtidig. Men når det gjelder JavaScript, så enkelt som det er å lære, er det alltid mer å utforske.
I dette innlegget ser vi på tre mindre kjente, men viktige funksjoner i JavaScript-arrays du kanskje ikke har kjent før.
1. Legg til egendefinerte egenskaper i arrays
Hvis du skulle skure Internett på jakt etter en grundig definisjon av JavaScript-arrays, vil du oppdage at nesten alle kilder uten å lykkes, vil liste array som hva det egentlig er, en gjenstand.
Faktisk, nesten alt vi håndterer i JavaScript vil vise seg å være et objekt. Det finnes to typer datatyper i JavaScript, Primitiv og objekter, men Primitiver er alltid pakket inn i gjenstander.
Array, Function, Date etc. er forhåndsdefinerte JavaScript-objekter som har innebygde metoder, egenskaper og egen standardisert syntaks.
JavaScript-arrayer kan ha tre forskjellige typer egenskaper:
- Indikatorer av en matrise er også egenskaper
- Innebygde egenskaper
- Egendefinerte egenskaper du kan legge til selv
De to første er mer kjente, du kan bruke dem hver dag, men la oss se dem raskt før du hopper inn i hvordan du kan legge til din egen egendefinerte eiendom til en rekke.
Indekser som Egenskaper
JavaScript-arrays bruker syntetisk firkantbrakett, som for eksempel var ary = ["oransje", "eple", "litchi"];
.
Indikatorer av array elementer er i utgangspunktet eiendommer hvor i eiendomsnavn er alltid ikke-negative heltall.
De indekselementpar av en matrise ligner på nøkkelverdier par av et objekt.
Indekser er en unik funksjon av Array-objektet, og i motsetning til de andre innebygde egenskapene, kan de være sett med brakets syntaks alene, som for eksempel ary [3] = "fersken";
.
Innebygde egenskaper
Arrays har også innebygde egenskaper, som for eksempel tabell.length
. De lengde
Egenskapen bærer et heltall som angir lengden på en matrise.
Generelt kan innebygde egenskaper ofte bli funnet i forhåndsdefinerte JavaScript-objekter som arrayer. Sammen med de innebygde metodene hjelper de Tilpass generiske gjenstander slik at objektene passer til forskjellige behov.
Innebygde egenskaper kan nås med enten object.key
eller objekt [ "nøkkel"]
syntaks. Så du kan også skrive ary [ "lengde"]
for å få tilgang til lengden på en matrise.
Opprett egendefinerte egenskaper for Array Object
Nå, la oss snakke om legge til dine egne egenskaper til arrays. Arrays er forhåndsdefinerte objekter som lagrer ulike typer verdier på forskjellige indekser.
Det er vanligvis ikke mye behov for å legge til egendefinerte egenskaper i en matrise; Dette er en av grunnene til at nybegynnere vanligvis ikke blir lært om denne funksjonen. Faktisk, hvis du vil behandle en matrise som et normalt objekt ved å legge til nøkkelverdepar til det, kan du også bruk et normalt objekt for ditt formål. Men dette betyr ikke at det ikke er det spesielle tilfeller hvor du kan gjøre bruk av det faktum at en matrise er et objekt, ved å legge til en eller flere egendefinerte egenskaper til den.
For eksempel kan du legge til en egendefinert egenskap i en matrise som identifiserer "type" eller "klassen" av dens elementer, som du kan se det i eksemplet nedenfor.
var ary = ["oransje", "eple", "litchi"]; ary.itemClass = "frukt"; console.log (ary + "er" + ary.itemClass); // "appelsin, eple, lychee er frukt"
Legg merke til at den egendefinerte egenskapen du legger til i en matrise er enumerable, noe som betyr at det vil bli plukket opp av løkker som for i
uttalelse.
2. Loop gjennom Array Elements
Du sier sannsynligvis "Jeg vet det allerede", som sannsynligvis er sant, vet du allerede hvordan du går gjennom arrayelementer. Men det er også sant at å si "loop through array elements" er litt abstrakt, som det vi faktisk går gjennom er indekser av gruppen.
Siden arrayindeksene bare består av ikke-negative heltall, vi itererer en heltallverdi som vanligvis starter fra null og slutter i full lengde av arrayet, og bruker deretter den itererte verdien for å få tilgang til arrayelementet ved en gitt indeks.
Men siden ECMAScript6 er det en måte å direkte loop gjennom array verdier uten å plage med indekser, og det kan gjøres ved å bruke for ... av
sløyfe.
I en matrise, den for ... av
loop vil sløyfe gjennom array elementer i rekkefølge av indekser, med andre ord vil det ta seg av iterating over indeksene og få en eksisterende array verdi på en gitt indeks. Denne sløyfen er ideell hvis du bare vil gå gjennom alle arrayelementene, og jobbe med dem.
var ary = ["oransje", "eple", "litchi"]; for (la element av ary) console.log (item); // "oransje", "eple", "litchi"
Til sammenligning, med den vanlige til
loop, vi får indeksene i stedet for verdiene som utgang.
var ary = ["oransje", "eple", "litchi"]; for (var element = 0; element < ary.length; item++) console.log(item); // 0, 1, 2
3. Antallet av elementer er ikke dets lengde
Vanligvis når vi snakker om lengden på en matrise, Vi tror at det er enten antall verdier en gruppe holder, eller lengden vi har gitt til gruppen manuelt. Men i virkeligheten avhenger lengden på en matrise den største eksisterende indeksen innsiden av den.
Lengden er a veldig fleksibel eiendom. Enten du allerede har bestemt lengden på en rekkevidde på forhånd eller ikke, hvis du fortsetter å legge til verdier i arrayet, er lengden fortsetter å øke tilsvarende.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6
I eksemplet ovenfor kan du se at jeg bare ga oppstillingen en verdi på indeks 5, og lengden blir 6. Nå, hvis du tror at ved å legge til en verdi i indeksen 5, opprettet oppstillingen indeksene 0 til 4 automatisk , deretter din antagelse er feil. Det er virkelig ingen eksisterende indekser fra 0 til 4 i den gruppen. Du kan sjekke dette ved hjelp av i
operatør.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 i år); // falsk
Arrayet ær
er det vi kaller a "sparsom" rekkefølge, et utvalg hvor indeksene Opprettes ikke kontinuerlig, og har hull. Det motsatte av et "sparsomt" array er "tett" array hvor indekser eksisterer kontinuerlig i matrisen, og antall elementer er de samme som lengde
.
De lengde
Egenskapen er også i stand til avkorte en matrise, sørge for at den høyeste indeksen til stede i array alltid er mindre enn seg selv, som lengde
er alltid numerisk større enn den høyeste indeksen som standard.
I eksemplet nedenfor kan du se hvordan vi mister elementet på indeks 5 ved å redusere lengde
av ær
matrise.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 ary.length = 2; console.log (ary.length); // 2 console.log (ary [5]); // undefined
Videre lesning
- 10 JavaScript-vilkår du bør vite nå
- 4 ikke-så-vanlige, men nyttige Javascript-setninger du burde vite
- Kodeoptimalisering med JS Hint - et verktøy for linting Javascript