Metoden reduce
Metoden reduce reducerer et array til
en enkelt værdi. For eksempel,
ved hjælp af denne metode kan man nemt finde summen
af array-elementer (dvs. arrayet reduceres
til en enkelt værdi - summen af elementerne).
Som den første parameter modtager metoden reduce
en funktion, som sekventielt udføres
for hvert element i arrayet, startende med det første.
I denne funktion kan man overføre 4 parametre.
Hvis disse parametre er til stede (de er ikke obligatoriske),
så vil den første automatisk modtage det mellemliggende
resultat, den anden vil modtage elementet
i arrayet, den tredje - dets nummer i arrayet (indeks),
og den fjerde - selve arrayet.
Det mellemliggende resultat - er en variabel,
hvori den værdi vil akkumuleres,
som metoden reduce vil returnere, når
den har gennemgået alle elementerne i arrayet. For eksempel,
der kan man sekventielt akkumulere summen
af array-elementer: først lægge det første
element, ved næste gennemløb af løkken allerede
summen af det første element og det andet, ved næste
gennemløb - summen af det første, andet og tredje.
Og sådan fortsætter det, indtil arrayet er slut.
Funktionen, som reduce modtager,
skal returnere den nye værdi af det mellemliggende
resultat.
Som anden parameter for metoden reduce angives
startværdien for det mellemliggende resultat.
Hvis den ikke er angivet, vil den være lig med det første
element i arrayet, og behandlingen af elementerne vil starte
fra det andet element.
Syntaks
array.reduce(function(mellemliggendeResultat, element, indeks, array) {
return nytMellemliggendeResultat;
}, startværdi);
Eksempel
Lad os finde summen af array-elementer:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(sum, elem) {
return sum + elem;
}, 0);
console.log(res);
Resultatet af udførelse af koden:
21
Eksempel
Lad os finde summen af alle positive tal i arrayet:
let arr = [1, -2, -3, 4, 5, -6];
let res = arr.reduce(function(sum, elem) {
if (elem >= 0) {
return sum + elem;
} else {
return sum;
}
}, 0);
console.log(res);
Resultatet af udførelse af koden:
10