Het eerste slagveld
“Objecten worden pas
praktisch wanneer ze overerven.”
- Sam Rain
- Sam Rain
Wie als dappere elf de pijlen richt op Olifaunts, zal de
magische krachten van ‘arrays’ waarderen. Deze structuur is in JavaScript een
machtig wapen, terwijl tovenaars van andere talen soms moeten tandenknarsen.
Arrays in JavaScript kunnen, naast oneindig genummerd zijn (dynamisch), geen
verplichte volgorde (sparse) van elementen, een mix bevatten van allerlei
soorten elementen (multi-porpose), een mogelijkheid tot ‘tekst’-labels
(associatieve arrays), óók andere arrays bevatten. Jazeker, lijstjes van
lijstjes; multi-dimensionale arrays.
Een array met ‘meerdere dimensies’
kan even vraagtekens oproepen bij de onervaren hobbit. Eén van de meest
praktische structuren in elvenmagie is (hoe kan het ook anders) de
boomstructuur. Een boomstructuur begint bij de stam (‘root’) om vervolgens
takken te vormen (‘Child/branch/dimensie) die weer uitmonden in andere takken of
bladeren (nodes). Wie begint bij de stam kan zo bij ieder blad komen.
Midden-Aarde staat voor bomen van allerlei soorten
(webpagina’s, pdf-jes, mp3 en zelfs de gegevens die van en naar het Internet
gestuurd worden). Wie bomen respecteert, zal weinig moeite hebben ze te
begrijpen.
Een tabel is beter te zien als een boom met takken van rijen
en kolommen als bladeren. Iedere tak is een ‘nieuwe’ array! Hoewel het in het
eerste opzicht aanvoelt als Orcisch is het een kwestie van spelen voor hobbits en
ijverige elven. Mensen weten als geen ander hoe ze van bomen wapens moeten
maken, zoals speren en katapulten!
Met een beetje JavaScript elvenmagie, maken we zo een boom
waar onze vrienden kunnen uitrusten:
var fellowship = new Array(); /*dit is onze stam*/
fellowship[“tovenaars”]=new Array(); /*een tak voor tovenaars*/
fellowship[“tovenaars”][0]=”Gandalf”; /*0 is het eerste nummer in een genummerd lijstje*/
fellowship[“mensen”]=new Array(); /*een tweede tak, maar voor mensen*/
fellowship[“mensen”][0]=”Aragon”;
fellowship[“mensen”][1]=”Faramir”;
var hobbits = new Array (“Frodo”, “Sam”, “Merrin”, “Peppin”); /*de lijst van hobbits wat makkelijker aangemaakt*/
fellowship[“hobbits”]=hobbits; /*alle hobbits hangen nu aan deze boom!*/
...etc...
fellowship[“tovenaars”]=new Array(); /*een tak voor tovenaars*/
fellowship[“tovenaars”][0]=”Gandalf”; /*0 is het eerste nummer in een genummerd lijstje*/
fellowship[“mensen”]=new Array(); /*een tweede tak, maar voor mensen*/
fellowship[“mensen”][0]=”Aragon”;
fellowship[“mensen”][1]=”Faramir”;
var hobbits = new Array (“Frodo”, “Sam”, “Merrin”, “Peppin”); /*de lijst van hobbits wat makkelijker aangemaakt*/
fellowship[“hobbits”]=hobbits; /*alle hobbits hangen nu aan deze boom!*/
...etc...
Met een boomstructuur kunnen we gerelateerde objecten veel
gemakkelijker gebruiken in elvenmagie. Wanneer we alle hobbits willen laten
dansen uit de ‘fellowship’, dan hoeven we maar:
Function latenDansen(wezen) { var d; /*een dans-functie*/
d=wezen+”danst blij in het rond!”;
return d;
}
var i; var feest;
for (i=0; i<fellowship[“hobbits”].length; i++) /*fellowship [“hobbits”] is een ‘array’, dus kan zo gebruikt worden*/
{
feest+=latenDansen(fellowship[“hobbits”][i];
}
/*feest bevat nu “Frodo danst blij in het rond! Sam danst... etc”*/
d=wezen+”danst blij in het rond!”;
return d;
}
var i; var feest;
for (i=0; i<fellowship[“hobbits”].length; i++) /*fellowship [“hobbits”] is een ‘array’, dus kan zo gebruikt worden*/
{
feest+=latenDansen(fellowship[“hobbits”][i];
}
/*feest bevat nu “Frodo danst blij in het rond! Sam danst... etc”*/
Je mag zoveel takken maken als je wilt – vergeet alleen niet
dat je de ‘knoop’ maakt met de spreuk ‘new Array’! Teveel takken? Of toch
liever snoeien en knippen? Met ‘delete’ tover je ze zo naar de vergetelheid:
delete fellowship[“mensen”][1]; /*faramir verwijderd*/
delete fellowship[“tovenaars]; /*hele tak tovenaars verwijderd*/
delete fellowship[“tovenaars]; /*hele tak tovenaars verwijderd*/
Meer lezen over Programmeren? Klik hier voor de inhoudsopgave van alle artikelen!
Geen opmerkingen:
Een reactie posten