Die reduce Metode
Die metode reduce vou 'n array saam tot
een waarde (reduseer dit). Byvoorbeeld,
met hierdie metode kan jy maklik die som
van die elemente van 'n array vind (dit wil sê die array word gereduseer
tot een waarde - die som van die elemente).
As eerste parameter neem die metode reduce 'n
funksie wat opeenvolgend uitgevoer sal word
vir elke element van die array, vanaf die eerste.
In hierdie funksie kan jy 4 parameters stuur.
As hierdie parameters bestaan (hulle is nie verpligtend nie),
dan sal die eerste outomaties die tussentydse
resultaat kry, die tweede sal die element
van die array kry, die derde - sy nommer in die array (indeks),
en die vierde - die array self.
Die tussentydse resultaat - dit is 'n veranderlike
waarin die waarde opgehoop sal word
wat die metode reduce sal teruggee wanneer
dit alle elemente van die array deurgaan het. Byvoorbeeld,
daar kan jy opeenvolgend die som
van die elemente van die array ophoop: eers die eerste
element sit, met die volgende lus deur die elemente dan al
die som van die eerste element en die tweede, met die volgende
deurgang - die som van die eerste, tweede en derde.
En so aan, totdat die array klaar is.
Die funksie wat reduce neem,
moet die nuwe waarde van die tussentydse
resultaat teruggee.
As tweede parameter van die metode reduce word die
beginwaarde van die tussentydse resultaat gespesifiseer.
As dit nie gespesifiseer word nie, sal dit gelyk wees aan die eerste
element van die array, en die verwerking van elemente sal begin
met die tweede element.
Sintaksis
array.reduce(function(tussentydse_resultaat, element, indeks, array) {
return nuwe_tussentydse_resultaat;
}, beginwaarde);
Voorbeeld
Laat ons die som van die elemente van 'n array vind:
let arr = [1, 2, 3, 4, 5, 6];
let res = arr.reduce(function(som, elem) {
return som + elem;
}, 0);
console.log(res);
Die resultaat van die kode-uitvoering:
21
Voorbeeld
Kom ons vind die som van alle positiewe getalle in die array:
let arr = [1, -2, -3, 4, 5, -6];
let res = arr.reduce(function(som, elem) {
if (elem >= 0) {
return som + elem;
} else {
return som;
}
}, 0);
console.log(res);
Die resultaat van die kode-uitvoering:
10