“Objecten zijn niet
altijd puur object; en dat geeft niet!”
- Sam Rain
- Sam Rain
In iedere programmeertaal is de methode om collectief
gegevens bij te houden onmisbaar. Een lijstje van dingen maakt het leven
gemakkelijker voor mensen, hobbits en alle andere wezens van Midden-Aarde. In
tovenaarstaal heet zo’n lijstje van dingen een array – en die “array’s” in
JavaScript zijn niet alleen kinderlijk eenvoudig, maar ook multifunctioneel.
Als intrinsiek object is een Array in JavaScript belangrijk;
objecten in JavaScript worden behandeld als arrays (waardoor tovenaars vaak
JavaScript objecten niet vaak beschouwen als ‘echte’ objecten). Een array is in
‘essentie’ een genummerde lijst; ieder ‘item’ in de lijst heeft een
‘indexnummer’. Stel, we maken een lijst van boodschappen in JavaScript:
var boodschappenlijst = new Array ( ) ; /* eerst maken we
een array object */
boodschappenlijst [0] = “appels”; /*arrays beginnen bij de 0 met tellen */
boodschappenlijst [1] = “peren” ;
boodschappenlijst [2] = “bananen” ;
boodschappenlijst [0] = “appels”; /*arrays beginnen bij de 0 met tellen */
boodschappenlijst [1] = “peren” ;
boodschappenlijst [2] = “bananen” ;
Als we nu het volgende zouden doen:
var a = boodschappenlijst [2] ;
Dan bevat de variabele a nu de tekenreeks “bananen”. Lijsten
mogen zo lang zijn als je wilt; de echte voordelen van arrays zullen snel
genoeg duidelijk worden wanneer er met Elvenmagie gespeeld zal worden, zoals
sorteren of automatiseren.
Wat JavaScript ook toelaat zijn “associatieve” arrays; in
plaats van nummers mag je ook tekst gebruiken. Soms is de ene manier handig,
maar soms de andere; objecten zijn bijvoorbeeld associatieve arrays. Ongeacht
de methode, blijven arrays een essentiële nummering houden – maar het is in
JavaScript in vergelijking met andere programmeertalen minder mistig of
omslachtig. Stel we maken de volgende array:
var autos = new Array ( ) ;
autos [“Porsche”] = “911”;
autos [“Mercedes”] = “Amg” ;
autos [“Dodge”] = “Challenger” ;
autos [“Porsche”] = “911”;
autos [“Mercedes”] = “Amg” ;
autos [“Dodge”] = “Challenger” ;
Dan zouden we met de volgende manieren de waardes
terughalen:
autos.Porsche ; /* geeft 911 */
autos [“Dodge”] ; /* geeft Challenger */
autos [1] ; /* geeft Amg – JavaScript telt vanaf 0! */
autos [“Dodge”] ; /* geeft Challenger */
autos [1] ; /* geeft Amg – JavaScript telt vanaf 0! */
Met een array kan een Hobbit al bijzondere dingen doen, maar
de Elf zal vooral in de flexibiliteit van JavaScript vreugde vinden. Zo kan een
array andere arrays bevatten; multi-dimensionale ‘matrices’ maken zaken als
‘kunstmatige intelligentie’ mogelijk of andere leuke wiskundige truukjes.
Natuurlijk valt er nog veel te bespreken over arrays; deze
objecten hebben hun eigen ‘methoden’ (functies die van toepassing zijn op een
object), zoals .push, .pop, .slice, .delete, enzovoorts. Hoe meer men vordert
in Elvenmagie, zal de kunde met arrays toenemen. Belangrijk op dit moment is
het gedrag van arrays als lijstjes én als boomstructuur. De ‘boomstructuur’
(door tovenaars bekend als ‘tree’ of ‘nodelist’) is een multi-dimensionale
matrix, waarbij ieder item een ‘element’ (of node) is, die verbonden is aan de
‘hoofdtak’ of stam (ook ‘root’ genoemd). Door deze techniek kun je met arrays
een complexe hiërarchie ontwerpen:
var x = new Array ( ) ; /*
x – afdeling A */
x [“organisatie”] = new Array ( ) ; /* - afdeling B */
x [“organisatie”] [“afdeling A”] = new Array ( ) ; /* - manager B */
x [“organisatie”] [“afdeling B”] = new Array ( ) ;
x [“organisatie”] [“afdeling B”] [“manager B”] ;
x [“organisatie”] = new Array ( ) ; /* - afdeling B */
x [“organisatie”] [“afdeling A”] = new Array ( ) ; /* - manager B */
x [“organisatie”] [“afdeling B”] = new Array ( ) ;
x [“organisatie”] [“afdeling B”] [“manager B”] ;
Meer lezen over Programmeren? Klik hier voor de inhoudsopgave voor alle
artikelen!
Geen opmerkingen:
Een reactie posten