Ce face Array.prototype.reduceRight
reduceRight combină elementele tabloului într-o singură valoare, exact ca reduce, dar începe din dreapta. Pentru adunare sau înmulțire rezultatul este același; contează când ordinea operațiilor schimbă rezultatul.
Fără valoare inițială, ultimul element devine acumulatorul de pornire. Pe un tablou gol fără valoare inițială aruncă TypeError.
Parametri
| Parametru | Descriere |
|---|---|
functie |
Primește (acumulator, element, indice, tablou) și returnează noul acumulator. |
valoareInitiala |
Opțional. Valoarea de pornire a acumulatorului. |
Ce returnează
Valoarea finală a acumulatorului.
Exemple
Exemplul 1: Ordinea contează
const litere = ["a", "b", "c"];
console.log(litere.reduce((acc, l) => acc + l));
console.log(litere.reduceRight((acc, l) => acc + l));
Rezultat
abc
cba
Exemplul 2: Compunerea funcțiilor
const compune = (...functii) => (x) => functii.reduceRight((acc, f) => f(acc), x);
const pret = compune((x) => x.toFixed(2) + " lei", (x) => x * 1.21, (x) => x - 10);
console.log(pret(110));
Rezultat
121.00 lei
Greșeli frecvente
- Apelezi
reduceRightpe un tablou care poate fi gol, fără valoare inițială, și primeștiTypeError: Reduce of empty array with no initial value.
Comenzi înrudite
reduce: Combină toate elementele unui tablou într-o singură valoare: o sumă, un obiect, un text.Array.prototype.reverse: Inversează ordinea elementelor din tablou, modificând chiar tabloul.map: Creează un tablou nou, transformând fiecare element cu o funcție.