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.
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:
numeri; // [1, 2, 3, 4] ← unchangedfilter: 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.
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.
const prezzi = [12, 5, 100, 30, 7];
const grandiDoppi = prezzi.filter((p) => p > 10).map((p) => p * 2);
// [24, 200, 60]Probeer het
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.
Toon hint
prijzen.kaart((p) => p * (1 + tarief))
Oplossing beschikbaar na 3 pogingen
Oefening beoordelen
Definieer `adultNames(people)`: u ontvangt een reeks objecten { naam, leeftijd } en retourneert de reeks namen van mensen met een leeftijd >= 18. Gebruik filter + kaart.
Toon hint
Keten: .filter(...).map((p) => p.name)
Oplossing beschikbaar na 3 pogingen