La función _.reduceRight() es un método incorporado en Underscore.js que se usa para realizar operaciones en cada elemento de la lista desde la derecha. Cuando todos los elementos de la lista se pasan de derecha a izquierda a la función/iterado y no quedan más elementos, el ciclo _.reduceRight finaliza.
Aplica una función simultáneamente contra dos valores de la array (de derecha a izquierda) para reducirla a un solo valor.
Sintaxis:
_.reduceRight(list, function())
Parámetros: Acepta dos parámetros que se especifican a continuación:
- lista: Es la lista que contiene algunos elementos a los que se va a acceder de derecha a izquierda.
- función: Es la función que va a realizar una operación para reducir la forma de los elementos de la lista de derecha a izquierda.
Valor devuelto: Devuelve el elemento reducido del formulario de lista de derecha a izquierda.
Códigos JavaScript para mostrar el funcionamiento de la función _.reduceRight():
- Pasar una lista de números a la función _.reduceRight(): La función ._reduceRight() toma el elemento de la lista uno por uno y realiza las operaciones especificadas en el código. Como aquí la operación es concatenación de los elementos de la lista para formar una nueva lista. Después de concatenar todos los elementos, la función reduceRight finaliza.
<
html
>
<
head
>
libs/underscore.js/1.9.1/underscore-min.js"></
script
>
libs/underscore.js/1.9.1/underscore-min.js.map"></
script
>
libs/underscore.js/1.9.1/underscore.js"></
script
>
</
head
>
<
body
>
<
script
type
=
"text/javascript"
>
var list = [[00, 11], [22, 33], [44, 55]];
var answer = _.reduceRight(list, function(a, b)
{ return a.concat(b); }, []);
document.write(answer);
</
script
>
</
body
>
</
html
>
Producción:
- Pasando una lista de caracteres a la función _.reduceRight() : Aquí también estamos haciendo lo mismo que hicimos en el primer ejemplo. La diferencia es que la lista no se identifica con números sino con caracteres. Entonces, la lista final contendrá todos los caracteres pero en el orden de derecha a izquierda de la lista original.
<
html
>
<
head
>
libs/underscore.js/1.9.1/underscore-min.js"></
script
>
libs/underscore.js/1.9.1/underscore-min.js.map"></
script
>
libs/underscore.js/1.9.1/underscore.js"></
script
>
</
head
>
<
body
>
<
script
type
=
"text/javascript"
>
var list = [['a', 'b'], ['c', 'd'], ['e', 'f']];
var answer = _.reduceRight(list, function(a, b)
{ return a.concat(b); }, []);
document.write(answer);
</
script
>
</
body
>
</
html
>
Producción:
- Averiguar el valor de la última iteración: La variable ‘num’ es una variable que almacena los valores de los elementos de la lista. Por lo tanto, dado que estamos devolviendo el valor al final cuando la función termina, esto implica que la lista también ha terminado. Y dado que la lista se recorre de derecha a izquierda, el resultado será el elemento más a la izquierda.
<
html
>
<
head
>
libs/underscore.js/1.9.1/underscore-min.js"></
script
>
libs/underscore.js/1.9.1/underscore-min.js.map"></
script
>
libs/underscore.js/1.9.1/underscore.js"></
script
>
</
head
>
<
body
>
<
script
type
=
"text/javascript"
>
var number=_.reduceRight([1, 2, 3, 4, 5],
function(memo, num) {
return num;
});
document.write(number);
</
script
>
</
body
>
</
html
>
Producción:
- Aplicar operadores aritméticos en la función _.reduceRight(): Si tratamos de realizar cualquier operación aritmética como suma, etc. en la lista de elementos, entonces el primer elemento será del lado derecho.
<
html
>
<
head
>
libs/underscore.js/1.9.1/underscore-min.js"></
script
>
libs/underscore.js/1.9.1/underscore-min.js.map"></
script
>
libs/underscore.js/1.9.1/underscore.js"></
script
>
</
head
>
<
body
>
<
script
type
=
"text/javascript"
>
var sum=[0, 1, 2, 3, 4].reduceRight(function(a, c ) {
return a + c;
});
document.write(sum);
</
script
>
</
body
>
</
html
>
Producción: