Een array is een geordende lijst met waarden die doorgaans is gemaakt met de bedoeling om numeriek geïndexeerde waarden door te lussen, te beginnen met de index nul. Wat u moet weten, is dat arrays numeriek geordende sets zijn, in tegenstelling tot objecten waarvan de eigenschapnamen zijn gekoppeld aan waarden in niet-numerieke volgorde. Matrixen gebruiken in feite getallen als opzoekcode, terwijl objecten door de gebruiker gedefinieerde eigenschapnamen hebben. JavaScript heeft geen echte associatieve arrays, maar objecten kunnen worden gebruikt om de functionaliteit van associatieve arrays te bereiken.
In het volgende voorbeeld bewaar ik vier strings in myArray
waar ik toegang tot heb met behulp van een numerieke index. Ik vergelijk en contrasteer myArray
naar een object dat letterlijk een associatieve array nabootst.
Voorbeeld: sample133.html
Arrays kunnen elk type waarden bevatten en deze waarden kunnen op elk moment worden bijgewerkt of verwijderd.
Als u een hash (ook wel associatieve array) nodig heeft, is een object de oplossing die het dichtst in de buurt komt.
Een Array ()
is gewoon een speciaal type Voorwerp()
. Dat is, Array ()
gevallen zijn in principe Voorwerp()
instanties met een aantal extra functies (.lengte
en een ingebouwde numerieke index).
Waarden die zich in een array bevinden, worden gewoonlijk elementen genoemd.
Array ()
parametersU kunt de waarden van een array-instantie doorgeven aan de constructor als door komma's gescheiden parameters (nieuwe Array ('foo', 'bar');
). De Array ()
constructor kan tot 4.294.967.295 parameters uitvoeren.
Als echter slechts één parameter wordt verzonden naar de Array ()
constructor en die waarde is een geheel getal ('1', '123' of '1.0'), het zal worden gebruikt om de lengte
van de array, en zal niet worden gebruikt als een waarde in de array.
Voorbeeld: sample134.html
Array ()
Eigenschappen en methodenDe Array ()
object heeft de volgende eigenschappen (exclusief overgenomen eigenschappen en methoden):
Eigenschappen (Array.prototype
):
prototype
Objecten van matrixobjecten hebben de volgende eigenschappen en methoden (exclusief overgenomen eigenschappen en methoden):
Instance-eigenschappen (var myArray = ['foo', 'bar']; myArray.length;
):
bouwer
lengte
Exemplaarmethoden (var myArray = ['foo']; myArray.pop ();
):
knal()
Duwen()
omgekeerde()
verschuiving()
soort()
splice ()
unshift ()
concat ()
join ()
plak()
Net als de meeste objecten in JavaScript, kan een array-object worden gemaakt met behulp van de nieuwe
operator in combinatie met de Array ()
constructor, of door de letterlijke syntaxis te gebruiken.
In het volgende voorbeeld maak ik de myArray1
array met vooraf gedefinieerde waarden met behulp van de Array ()
constructor en dan myArray2
met behulp van letterlijke notatie.
Voorbeeld: sample135.html
Het komt vaker voor dat een array wordt gedefinieerd met behulp van de letterlijke syntaxis, maar er moet worden opgemerkt dat deze snelkoppeling slechts het gebruik van de Array ()
bouwer.
In de praktijk is de array letterlijk meestal alles wat u ooit nodig zult hebben.
Ongeacht hoe een array wordt gedefinieerd, als u geen voorgedefinieerde waarden aan de array opgeeft, wordt deze nog steeds gemaakt maar bevat deze eenvoudigweg geen waarden.
Een waarde kan op elk willekeurig moment aan een willekeurige index worden toegevoegd. In het volgende voorbeeld voegen we een waarde toe aan de numerieke index 50 van een lege array. Hoe zit het met alle indexen voor 50? Nou, zoals ik al zei, je kunt op elk moment een waarde toevoegen aan een array op elke index. Maar als u een waarde toevoegt aan de numerieke index 50 van een lege array, vult JavaScript alle benodigde indexen in voordat het met onbepaald
waarden.
Voorbeeld: sample136.html
Gezien de dynamische aard van JavaScript en het feit dat JavaScript niet sterk getypt is, kan een arraywaarde op elk moment worden bijgewerkt en kan de waarde in de index elke juridische waarde hebben. In het volgende voorbeeld verander ik de waarde op de numerieke index 50 in een object.
Voorbeeld: sample137.html
Een array begint waarden bij nul te indexeren. Dit betekent dat het eerste numerieke slot om een waarde in een array te houden eruit ziet myArray [0]
. Dit kan een beetje verwarrend zijn als ik een array maak met een enkele waarde, de index van de waarde is 0 terwijl de lengte van de array 1 is. Zorg ervoor dat u begrijpt dat de lengte van een array het aantal waarden in de array vertegenwoordigt , terwijl de numerieke index van de array op nul begint.
In het volgende voorbeeld de tekenreekswaarde blauw
is opgenomen in de myArray
array op de numerieke index 0, maar omdat de array één waarde bevat, is de array 1.
Voorbeeld: sample138.html
lengte
Zoals ik eerder al zei, door een enkele integer parameter door te geven aan de Array ()
constructor, het is mogelijk om de lengte van de array of het aantal waarden dat deze zal bevatten vooraf te definiëren. In dit geval maakt de constructor een uitzondering en wordt ervan uitgegaan dat u de lengte van de array wilt instellen en niet de array vooraf wilt vullen met waarden.
In de volgende steekproef hebben we de myArray
array met een vooraf gedefinieerde lengte van 3. Nogmaals, we zijn de lengte van de array aan het configureren, niet doorgeven van een waarde die moet worden opgeslagen op de 0 index.
Voorbeeld: sample139.html
Een voorgedefinieerd aanbieden lengte
geeft elke numerieke index, tot de opgegeven lengte, een bijbehorende waarde van onbepaald
.
U vraagt zich misschien af of het mogelijk is om een vooraf gedefinieerde array te maken die slechts één numerieke waarde bevat. Ja, het is door de letterlijke vorm te gebruiken var myArray = [4]
.
De lengte
eigenschap van een array-object kan worden gebruikt om de lengte van een array op te halen of in te stellen. Zoals eerder is weergegeven, wordt de lengte groter dan het werkelijke aantal waarden in de array toegevoegd onbepaald
waarden voor de array. Wat u misschien niet verwacht, is dat u waarden uit een array feitelijk kunt verwijderen door de lengtewaarde in te stellen op een getal dat kleiner is dan het aantal waarden in de array..
Voorbeeld: sample140.html
Aangezien een array elke geldige JavaScript-waarde kan bevatten, kan een array andere arrays bevatten. Wanneer dit is gebeurd, wordt de array met ingekapselde arrays als een multidimensionale array beschouwd. Toegang tot ingekapselde arrays wordt gedaan door middel van bracket-koppeling. In het volgende voorbeeld maken we een array-lettertype dat een array bevat, van waaruit we een andere array letterlijk maken, van waaruit we een andere array letterlijk maken, die een stringwaarde op de 0-index bevat.
Voorbeeld: sample141.html
Dit codevoorbeeld is nogal gek, maar je krijgt het idee dat arrays andere arrays kunnen bevatten en je onbeperkte toegang hebt tot ingekapselde arrays.
De eenvoudigste en misschien wel de snelste manier om over een array te loopen, is door de while-lus te gebruiken.
In de volgende code lus van het begin van de index tot het einde.
Voorbeeld: sample142.html
En nu lopen we van het einde van de index naar het begin.
Voorbeeld: sample143.html
Nu, als je je afvraagt waarom ik hier niet voor loops zie, komt dat omdat while-loops minder bewegende delen bevatten en ik geloof dat ze makkelijker te lezen zijn.
En dat completeert dit artikel over arrays.