Direct naar de hoofdinhoud
Module 6 · Les 1 van 421/32 in de cursus~10 min
Modulelessen (1/4)

in kaart brengen en filteren

Twee essentiële methoden: ze transformeren een array in een nieuwe array, zonder het origineel te muteren.

map: transformeer elk element

Er is een functie voor nodig, deze wordt op elk element toegepast en er wordt een array van dezelfde lengte geretourneerd met de resultaten.

JS
const numeri = [1, 2, 3, 4];

const doppi = numeri.map((n) => n * 2);
// [2, 4, 6, 8]

const stringhe = numeri.map((n) => `n=${n}`);
// ['n=1', 'n=2', 'n=3', 'n=4']

Het origineel blijft onaangeroerd:

JS
numeri; // [1, 2, 3, 4]  ← unchanged

filter: selecteer een subset

Er is een predikaat voor nodig (een functie die waar/onwaar retourneert). Het bewaart alleen de elementen waarvoor het gezegde is waar.

JS
const numeri = [1, 2, 3, 4, 5, 6];

const pari = numeri.filter((n) => n % 2 === 0);
// [2, 4, 6]

const grandi = numeri.filter((n) => n > 3);
// [4, 5, 6]

Het combineren van de twee

Klassieke pijplijn: filteren en vervolgens transformeren.

JS
const prezzi = [12, 5, 100, 30, 7];

const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]

Probeer het

Oefening#js.m6.l1.e1
Pogingen: 0Laden…

Definieer `vat(prijzen, tarief)`: gegeven een array van getallen en een tarief (bijvoorbeeld 0,22), retourneert u een array met de prijzen verhoogd met BTW. Gebruik kaart.

Editor laden…
Toon hint

prijzen.kaart((p) => p * (1 + tarief))

Oplossing beschikbaar na 3 pogingen

Oefening beoordelen

Oefening#js.m6.l1.e2
Pogingen: 0Laden…

Definieer `adultNames(people)`: u ontvangt een reeks objecten { naam, leeftijd } en retourneert de reeks namen van mensen met een leeftijd >= 18. Gebruik filter + kaart.

Editor laden…
Toon hint

Keten: .filter(...).map((p) => p.name)

Oplossing beschikbaar na 3 pogingen