3 dingen die u niet weet over JavaScript-arrays
arrays zijn een veel gebruikte functie van programmeertalen; zij zijn speciale variabelen die kan worden gebruikt om meerdere waarden tegelijkertijd op te slaan. Maar als het gaat om JavaScript, zo eenvoudig als het is om te leren, is er altijd meer te ontdekken.
In dit bericht bekijken we drie minder bekende maar belangrijke functies van JavaScript-arrays die u misschien nog niet eerder had gekend.
1. Voeg aangepaste eigenschappen toe aan arrays
Als u het internet zou doorzoeken op zoek naar een grondige definitie van JavaScript-arrays, zult u merken dat bijna elke bron zonder enige storing de array zal weergeven als wat het is werkelijk is, een voorwerp.
In feite zal bijna alles waarmee we in JavaScript te maken hebben blijkt een object te zijn. Er zijn twee soorten gegevenstypes in JavaScript, primitieven en voorwerpen, maar primitieven worden altijd ingepakt in objecten.
Array, functie, datum, etc. zijn voorgedefinieerde JavaScript-objecten met ingebouwde methoden, eigenschappen en een eigen gestandaardiseerde syntaxis.
JavaScript-arrays kunnen hebben drie verschillende soorten eigenschappen:
- Indices van een array zijn ook eigenschappen
- Ingebouwde eigenschappen
- Aangepaste eigenschappen je kunt het zelf toevoegen
De eerste twee zijn bekender, je kunt ze elke dag gebruiken, maar laten we ze snel bekijken voordat je begint met hoe je je eigen aangepaste eigenschap aan een array kunt toevoegen.
Indices als eigenschappen
JavaScript-arrays gebruiken de vierkante haaks syntaxis, zoals var ary = ["orange", "apple", "lychee"];
.
Indices van array-elementen zijn in principe eigenschappen waar de eigendomsnamen zijn altijd niet-negatieve gehele getallen.
De index-element paar van een array is vergelijkbaar met de sleutel-waarde paar van een object.
Indices zijn een unieke functie van het object Array, en in tegenstelling tot andere ingebouwde eigenschappen, kunnen ze dat wel zijn stel de syntaxis alleen in met de haakjes, zoals ary [3] = "perzik";
.
Ingebouwde eigenschappen
Arrays hebben ook ingebouwde eigenschappen, zoals Array.length
. De lengte
eigenschap heeft een geheel getal dat geeft de lengte van een array aan.
In het algemeen kunnen ingebouwde eigenschappen vaak worden gevonden in vooraf gedefinieerde JavaScript-objecten zoals arrays. Samen met de ingebouwde methoden helpen ze pas generieke objecten aan zodat de objecten geschikt zijn voor verschillende behoeften.
Ingebouwde eigenschappen kunnen worden geopend met de object.key
of de object [ "key"]
syntaxis. Je kunt dus ook schrijven ary [ "lengte"]
om toegang te krijgen tot de lengte van een array.
Maak aangepaste eigenschappen voor het matrixobject
Laten we het nu hebben uw eigen eigenschappen aan arrays toevoegen. Arrays zijn vooraf gedefinieerde objecten die verschillende soorten waarden opslaan op verschillende indices.
Het is meestal niet erg nodig om aangepaste eigenschappen aan een array toe te voegen; dit is een van de redenen waarom beginners meestal niet over deze functie worden onderwezen. Als u een array als een normaal object wilt behandelen door er sleutel / waarde-paren aan toe te voegen, kunt u het net zo goed doen gebruik een normaal voorwerp voor uw doel. Maar dit betekent niet dat dat niet zo is speciale gevallen waar u gebruik kunt maken van het feit dat een array een object is, door er een of meer aangepaste eigenschappen aan toe te voegen.
U kunt bijvoorbeeld een aangepaste eigenschap aan een array toevoegen identificeert de "soort" of de "klasse" van zijn elementen, zoals je het kunt zien in het onderstaande voorbeeld.
var ary = ["orange", "apple", "lychee"]; ary.itemClass = "fruits"; console.log (ary + "zijn" + ary.itemClass); // "sinaasappel, appel, lychee zijn fruit"
Merk op dat de aangepaste eigenschap die u aan een array toevoegt, is enumerable, wat betekent dat het wordt opgepikt door lussen zoals de voor in
uitspraak.
2. Loop door array-elementen
U zegt waarschijnlijk "Ik weet dat al", wat hoogstwaarschijnlijk waar is, u weet al hoe u array-elementen moet doorlopen. Maar het is ook waar dat het zeggen van "lus door array-elementen" een beetje abstract is, want wat we eigenlijk doorlopen zijn de indices van de array.
Aangezien array-indices alleen bestaan uit niet-negatieve gehele getallen, we itereren een geheel getal dat meestal begint bij nul en eindigt bij de volledige lengte van de array, gebruikt vervolgens die geïtereerde waarde om toegang te krijgen tot het arrayelement bij een bepaalde index.
Sinds ECMAScript6 is er echter een manier om direct door matrixwaarden lopen zonder zich te bekommeren om indices, en dat kan gedaan worden door de voor ... van
lus.
In een array, de voor ... van
loop loopt door de array-elementen in de volgorde van indices, met andere woorden, het zorgt voor iteratie over de indices en krijgt een bestaande arraywaarde bij een gegeven index. Deze lus is ideaal als u gewoon alle arrayelementen wilt doorlopen en ermee wilt werken.
var ary = ["orange", "apple", "lychee"]; for (let item of ary) console.log (item); // "orange", "apple", "lychee"
Ter vergelijking, met de reguliere voor
loop, we krijgen de indices in plaats van de waarden als output.
var ary = ["orange", "apple", "lychee"]; voor (var item = 0; item < ary.length; item++) console.log(item); // 0, 1, 2
3. Het aantal elementen is niet de lengte ervan
Meestal als we het hebben over de lengte van een array, we denken dat dit het aantal waarden is dat een array bevat, of de lengte die we handmatig aan de array hebben gegeven. In werkelijkheid hangt de lengte van een array echter af de grootste bestaande index binnenkant ervan.
Lengte is a zeer flexibel eigendom. Of u de lengte van een array al van tevoren hebt vastgesteld of niet, als u waarden blijft toevoegen aan de array, de lengte ervan blijft dienovereenkomstig toenemen.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6
In het bovenstaande voorbeeld kunt u zien dat ik de array slechts één waarde heb gegeven bij index 5 en dat de lengte 6 wordt. Nu, als u denkt dat door een waarde aan index 5 toe te voegen, de array automatisch de indexen van 0 tot 4 heeft gemaakt , dan uw aanname is onjuist. Er zijn echt geen bestaande indices van 0 tot 4 in die reeks. U kunt dit controleren met behulp van de in
operator.
var ary = []; ary.length = 3; console.log (ary.length); // 3 ary [5] = "abcd"; console.log (ary.length); // 6 console.log (0 in ary); // false
De array ary
is wat we a noemen "schaarse" array, een array met de indices worden niet continu gemaakt, en hebben hiaten. Het tegenovergestelde van een "schaarse" array is de "dichte" array waar indices continu in de array aanwezig zijn en het aantal elementen hetzelfde is als de lengte
.
De lengte
eigendom is ook in staat trunceren van een array, ervoor zorgen dat de hoogste index aanwezig in de array altijd is minder dan zichzelf, zoals lengte
is standaard altijd numeriek groter dan de hoogste index.
In het onderstaande voorbeeld kunt u zien hoe we het element verliezen bij index 5 door het te verlagen lengte
van de ary
rangschikking.
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
Verder lezen
- 10 JavaScript-termen die u nu moet kennen
- 4 niet-zo-gemeenschappelijke maar nuttige Javascript-statements die u moet weten
- Code optimalisatie met JS Hint - een hulpmiddel voor het plukken van Javascript