Array ()

Et array er en bestilt liste over verdier som vanligvis er opprettet med det formål å løpe gjennom numerisk indekserte verdier, begynner med indeksen null. Det du trenger å vite er at arrays er numerisk bestilte sett, i motsetning til objekter som har eiendomsnavn knyttet til verdier i ikke-numerisk rekkefølge. I hovedsak bruker arrays tall som en oppslagstast, mens objekter har brukerdefinerte eiendomsnavn. JavaScript har ingen ekte associative arrays, men objekter kan brukes til å oppnå funksjonaliteten til assosiative arrayer.

I den følgende prøven lagrer jeg fire strenger i myArray som jeg kan få tilgang til ved hjelp av en numerisk indeks. Jeg sammenligner og kontrasterer myArray til et objekt bokstavelig etterligne en assosiativ array.

Eksempel: prøve133.html

 

Arrays kan holde noen type verdier, og disse verdiene kan oppdateres eller slettes når som helst.

Hvis du trenger en hash (aka associative array), er en gjenstand nærmeste løsning.

en Array () er bare en spesiell type Gjenstand(). Det er, Array () forekomster er i utgangspunktet Gjenstand() forekomster med et par ekstra funksjoner (.lengde og en innebygd numerisk indeks).

Verdier som finnes i en array kalles ofte elementer.


Array () parametere

Du kan overføre verdiene til en array-forekomst til konstruktøren som kommaseparerte parametere (Ny Array ('foo', 'bar');). De Array () Konstruktøren kan ta opptil 4 294 967 295 parametere.

Men hvis bare én parameter sendes til Array () konstruktør og verdien er et heltall ('1', '123' eller '1,0'), vil det bli brukt til å sette opp lengde av arrayet, og vil ikke bli brukt som en verdi inneholdt i arrayet.

Eksempel: sample134.html

 

Array () Egenskaper og metoder

De Array () objektet har følgende egenskaper (ikke inkludert arvede egenskaper og metoder):

Eiendommer (Array.prototype):

  • prototype

Array Object Instance Egenskaper og metoder

Array-objektinstanser har følgende egenskaper og metoder (ikke inkludert arvelige egenskaper og metoder):

Instansegenskaper (var myArray = ['foo', 'bar']; myArray.length;):

  • konstruktør
  • lengde

Instansmetoder (var myArray = ['foo']; myArray.pop ();):

  • pop ()
  • trykk()
  • omvendt()
  • skifte()
  • sortere()
  • spleise ()
  • avskifte ()
  • concat ()
  • bli med()
  • skjære()

Opprette Arrays

Som de fleste objektene i JavaScript, kan en arrayobjekt opprettes ved hjelp av ny operatør i forbindelse med Array () konstruktør, eller ved å bruke bokstavelig syntaks.

I følgende eksempel lager jeg myArray1 array med forhåndsdefinerte verdier ved hjelp av Array () konstruktør, og da myArray2 bruker bokstavelig notasjon.

Eksempel: sample135.html

 

Det er mer vanlig å se en matrise definert ved hjelp av bokstavelig syntaks, men det bør bemerkes at denne snarveien bare skjuler bruken av Array () konstruktør.

I praksis er array-bokstavelig typisk alt du noensinne vil trenge.

Uansett hvordan en matrise er definert, vil du fremdeles ikke opprette noen forhåndsdefinerte verdier i arrayet, men vil ikke inneholde noen verdier.


Legge til og oppdatere verdier i arrays

En verdi kan legges til en rekkefølge på en hvilken som helst indeks, når som helst. I prøven som følger, legger vi til en verdi i den numeriske indeksen 50 av en tom matrise. Hva med alle indeksene før 50? Vel, som sagt, kan du til enhver tid legge til en verdi på en matrise på en hvilken som helst indeks. Men hvis du legger til en verdi for den numeriske indeksen 50 av en tom matrise, vil JavaScript fylle ut alle nødvendige indekser før den med udefinert verdier.

Eksempel: sample136.html

 

I tillegg, vurderer JavaScript-dynamikkens natur og det faktum at JavaScript ikke er sterkt skrevet, kan en array-verdi til enhver tid oppdateres, og verdien i indeksen kan være noen juridisk verdi. I den følgende prøven endrer jeg verdien ved den numeriske indeksen 50 til en gjenstand.

Eksempel: prøve137.html

 

Lengde vs. indeks

En matrise begynner å indeksere verdier til null. Dette betyr at den første numeriske sporet for å holde en verdi i en matrise ser ut myArray [0]. Dette kan være litt forvirrende Hvis jeg lager en matrise med en enkelt verdi, er indeksen for verdien 0 mens lengden på arrayet er 1. Pass på at du forstår at lengden på en matrise representerer antall verdier som finnes i matrisen , mens den numeriske indeksen for arrayet starter ved null.

I den følgende prøven er strengverdien blå finnes i myArray array ved den numeriske indeksen 0, men siden arrayet inneholder en verdi, er lengden på arrayet 1.

Eksempel: sample138.html

 

Definere arrayer med forhåndsdefinert lengde

Som nevnt tidligere, ved å sende et enkelt heltallsparameter til Array () konstruktør, er det mulig å forhåndsdefinere arrayslengden, eller antall verdier det vil inneholde. I dette tilfellet gjør konstruktøren et unntak og antar at du vil angi lengden på arrayet og ikke pre-populere arrayet med verdier.

I den neste prøven setter vi opp myArray array med en forhåndsdefinert lengde på 3. Igjen konfigurerer vi lengden på arrayet, ikke overfører den en verdi som skal lagres på 0-indeksen.

Eksempel: sample139.html

 

Gir en forhåndsdefinert lengde vil gi hver numerisk indeks, opp til den angitte lengden, en tilknyttet verdi på udefinert.

Du lurer kanskje på om det er mulig å lage en forhåndsdefinert gruppe som bare inneholder en numerisk verdi. Ja, det er ved å bruke bokstavelig form var myArray = [4].


Innstilling av array lengde kan legge til eller fjerne verdier

De lengde Egenskapen til et arrayobjekt kan brukes til å få eller angi lengden på en matrise. Som vist tidligere, vil innstillingen av lengden som er større enn det faktiske antall verdier som finnes i arrayet, legges til udefinert verdier til matrisen. Det du kanskje ikke forventer er at du faktisk kan fjerne verdier fra en matrise ved å sette lengdeverdien til et tall mindre enn antall verdier som finnes i matrisen.

Eksempel: sample140.html

 

Arrayer som inneholder andre arrays (også multidimensjonale arrays)

Ettersom et array kan holde en gyldig JavaScript-verdi, kan en matrise inneholde andre arrayer. Når dette er gjort, regnes arrayen som inneholder innkapslede arrays som et flerdimensjonalt array. Tilgang til innkapslede arrays er gjort ved hjelp av brakettkjetting. I den følgende prøven oppretter vi en matrise som inneholder en matrise, der vi lager en annen bokstavlig bokstav, inne i hvilken vi lager en annen bokstavs bokstav, som inneholder en strengverdi ved 0-indeksen.

Eksempel: sample141.html

 

Dette kodeeksemplet er ganske dumt, men du får ideen om at arrayer kan inneholde andre arrayer, og du kan få tilgang til innkapslede arrays på ubestemt tid.


Looping over en array, bakover og fremover

Den enkleste og uten tvil den raskeste måten å løse over en matrise er å bruke mensløkken.

I den følgende koden løp vi fra begynnelsen av indeksen til slutten.

Eksempel: sample142.html

 

Og nå løp vi fra slutten av indeksen til begynnelsen.

Eksempel: sample143.html

 

Konklusjon

Nå, hvis du lurer på hvorfor jeg ikke viser for løkker her, er det fordi mens sløyfer har færre bevegelige deler, og jeg tror de er lettere å lese.

Og det fullfører denne artikkelen på arrays.