En el operador de reducción, la función de acumulador se usa en la entrada observable, y la función de acumulador devolverá el valor acumulado en forma de observable, con un valor semilla opcional pasado a la función de acumulador.
La función reduce () tomará 2 argumentos, una función de acumulador y el segundo es el valor semilla.
Sintaxis
reduce(accumulator_func, seeder?) : Observable
Parámetros
accumulator_func- (opcional). una función que se llama a los valores fuente de los observables.
seeder - ((opcional) Por defecto no está definido. El valor inicial que se considerará para la acumulación.
Valor devuelto
Devolverá un observable que tendrá un único valor acumulado.
Veremos algunos ejemplos para ver cómo funciona el operador de reducción.
Ejemplo 1
import { from } from 'rxjs';
import { reduce } from 'rxjs/operators';
let items = [
{item1: "A", price: 1000.00},
{item2: "B", price: 850.00},
{item2: "C", price: 200.00},
{item2: "D", price: 150.00}
];
let final_val = from(items).pipe(reduce((acc, itemsdet) => acc+itemsdet.price, 0));
final_val.subscribe(x => console.log("Total Price is: "+x));
Salida
Total Price is: 2200