Op weg naar Mordor
“Lussen
gebruiken met arrays is de basis voor gegevensverwerking.”
- Sam Rain
- Sam Rain
Hobbits zijn wezens die fysiek het afleggen
tegen Orcs. Wie niet sterk is moet slim zijn – en dit gaat ook op voor mensen,
hobbits en elven! Met lussen kan een hobbit vele Orcs op afstand houden en de
moedige mens zijn onneembaar fort verdedigen met de hulp van JavaScripts elite
troepen: arrays.
Orcs hebben een hekel aan gezonde dingen en
fruit is iets dat Hobbits tot grote afstand kunnen werpen. Om te kunnen werpen,
hebben we de volgende elvenmagie nodig:
Function werp (fruit){
var doelwit = “Orc werd geraakt door” + fruit;
}
var doelwit = “Orc werd geraakt door” + fruit;
}
Naast het kunnen werpen hebben we ook nog
soorten fruit nodig:
var fruitmand = new Array (“citroen”, “appel”,
“peer”, “meloen”);
/*een genummerde lijst*/
/*een genummerde lijst*/
Een hobbit zou ieder afzonderlijk stuk fruit
kunnen werpen, zoals op deze manier:
werp (fruitmand[0]); /*werpt een citroen*/
werp (fruitmand[1]); /* werpt een appel*/
werp (fruitmand[0]); /*werpt een citroen*/
werp (fruitmand[1]); /* werpt een appel*/
Als de fruitmand nu vol zou zitten met 100
stuks fruit, zou het voor de griffelende Hobbit een levenswerk worden – wat
nogal een tijdrovend proces is zonder de ring der ringen. Met een lus wordt het
voor een groep Orcs al snel een nederlaag:
for (var gegooid=0;
gegooid<fruitmand.length; gegooid++)
{
werp (fruitmand[gegooid]);
}
/* al het fruit in de fruitmand wordt gegooid naar Orcs */
{
werp (fruitmand[gegooid]);
}
/* al het fruit in de fruitmand wordt gegooid naar Orcs */
Deze magie kan even overweldigend zijn, maar
wees geen laffe trol – maar trek het Elvenzwaard en bekijk wat deze ‘for’ lus
nu eigenlijk doet. De ‘for’-lus heeft 3 onderdelen die de magie tussen de
accolades laat herhalen. Eerst maken we een ‘tijdelijke’ variabele aan met de
naam ‘gegooid’ met de waarde 0. Dit is wat tovenaars noemen de initiële waarde.
Vervolgens komt er de ‘conditie’ – iedere keer als alle magie de sluitende
accolade bereikt, controleert JavaScript deze ‘conditie’ op zijn ‘Booleaanse’
waarde. Is deze ‘waar’, dan wordt de magie nogmaals uitgevoerd totdat deze
‘onwaar’ wordt. Fruitmand is een array en heeft daarom de ‘length’ eigenschap –
het totaal aantal elementen in de lijst. Zolang we niet even vaak ‘gegooid’
hebben als het aantal ‘fruit’ in de ‘fruitmand’, kunnen we blijven werpen. Als
dus ‘gegooid’ kleiner is dan het ‘aantal’ fruit in de fruitmand moet er
geworpen worden. Arrays tellen vanaf nul
in de ‘index’, maar de length eigenschap niet. Daarom begint ‘gegooid’ wel met
nul en is dus altijd ‘1’ kleiner dan de ‘length’ van een array. Als laatst
is er de ‘incrementatie’ – of ‘stap’; met de ++ operator verhogen we met
elvenmagie de ‘waarde’ van gegooid met 1.
In feite gebeurd er precies hetzelfde als
wanneer we het volledig zouden uitschrijven – alleen schrijven we het korter en
efficiënter op. Met een ‘associatieve array’ wordt het nog gemakkelijker, zelfs
bij het complexer maken:
var mand = {“licht” : “appel”, “zwaar” :
“meloen”};
/* korte manier voor het aanmaken van een associatieve array als
mand [“licht”] = “appel”;
mand [“zwaar”] = “meloen”; */
De lus wordt nu:
/* korte manier voor het aanmaken van een associatieve array als
mand [“licht”] = “appel”;
mand [“zwaar”] = “meloen”; */
De lus wordt nu:
for (f in mand){
werp (mand[f]);
}
werp (mand[f]);
}
De eerste Orcs rennen weg na deze
fruitverrassing! Op naar Mordor!
Meer lezen over Programmeren? Klik hier voor de inhoudsopgave van alle
artikelen!
©SamRain
JavaScript - 16
JavaScript - 16
Geen opmerkingen:
Een reactie posten