RxJS - Operador matemático Reducir

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