Higher Order functions - YunusEmreCMD/blokTech GitHub Wiki
Het hebben en schrijven van super veel regels code, betekent niet altijd dat dit goed en erg efficiënt is. Lange regels code, kunnen vaak verkort worden, wat eigenlijk meer gewild is. Dit komt doordat concepten op deze manier op een eenvoudiger manier worden uitgedrukt en makkelijker te begrijpen zijn.
Abstractions
Abstracties verbergen details en geven ons de mogelijkheid om op een hoger (of abstract) niveau over problemen te praten. Het is niet altijd handig om super korte regels code te schrijven, omdat je dan wellicht moeilijke termen, woorden moet gebruiken die onder veel mensen onbekend zijn.
Arrays hebben een aantal nuttige hoge-orde methodes. We kunnen foreach
gebruiken om te loopen door objecten in een array. De filter
methode geeft een nieuwe array terug met daarin alleen de elementen die de predicaat functie hebben doorgegaan. Een array aanpassen door elk element door een functie te laten halen wordt gedaan met map
. Reduce
kunnen we gebruiken om alle elementen in een array samen te voegen tot 1 waarde. De some methode test of een element matcht met een predikaatfunctie. En tot slot met de findIndex
kunnen we de positie van de eerste element inzien die matcht met de eerste element van een predikaat.
Voorbeelden methodes:
Map
function map(array, transform) {
let mapped = [];
for (let element of array) {
mapped.push(transform(element));
}
return mapped;
}
Array filteren
function filter(array, test) {
let passed = [];
for (let element of array) {
if (test(element)) {
passed.push(element);
}
}
return passed;
}
Reduce
function reduce(array, combine, start) {
let current = start;
for (let element of array) {
current = combine(current, element);
}
return current;
}
console.log(reduce([1, 2, 3, 4], (a, b) => a + b, 0));
// → 10