# Lussen - forEach

In Javascript kan je de elementen van een array overlopen in een lus via de methode forEach(). Een lus is een structuur die code herhaalt. In dit geval wordt de lus één keer per item in de rij uitgevoerd. Ze laat je toe een aantal statements (opdrachten) uit te voeren op elk element uit de rij. Er bestaan nog andere soorten lussen die later aan bod komen, zoals de varianten van een for-lus.

# De methode forEach()

De methode forEach() neemt één argument aan: een functie die per element in de rij wordt uitgevoerd. Trek je voorlopig niets aan van de syntax van een functie, maar concentreer je op de werking van de lus.

De syntax ziet er als volgt uit:

items.forEach(item => {
    // Doe iets met het item
})

De naam items en item staan niet vast, het zijn zelfgekozen variabelenamen. items is de array, item is één element uit de rij. De functie binnen de forEach() methode wordt één keer uitgevoerd voor elk element in de rij. Dit betekent dat de waarde van item wisselt doorheen de lus, tot elk element aan bod is geweest.

Een eenvoudig voorbeeld om elk element uit een array te tonen in de console:

const getallen = [6, 8, 10];

getallen.forEach(getal => {
    console.log(getal);
})

Een goede tip is te werken met meervoud en enkelvoud voor de benamingen van de variabelen. De variabele die de array bevat is een meervoud (getallen), de variabele die een individueel item bevat is een enkelvoud (getal). Binnen de functie werkt je in principe alleen maar met het enkelvoud!

# forEach() nesten

Ook de forEach() methode kan genest worden wanneer een array andere arrays als waarde bevat. Er verandert niets aan de syntax, maar let goed op het correct plaatsen van de ronde haken () en accolades {}!

Het volgende voorbeeld heeft een array ploegen die gevuld is met andere arrays waarin de namen van de deelnemers van elke ploeg zitten. De eerste forEach() itereert (overloopt) de buitenste array ploegen, terwijl de tweede forEach() instaat voor het itereren over elke naam binnen de ploeg en deze op het scherm schrijft.

const ploegen = [
    ["Danny", "Freya", "Sam"],
    ["Kim", "Donna", "Fira"],
    ["Bjorn", "Ali", "Maya"]
]

document.write("Overzicht van spelers per ploeg:<br>");
ploegen.forEach(ploeg => {
    ploeg.forEach(naam => {
        document.write(naam + " | ");
    });
    document.write("<br>");
})