RxJS - Redução de Operador Matemático

No operador de redução, a função de acumulador é usada na entrada observável, e a função de acumulador retornará o valor acumulado na forma de um observável, com um valor semente opcional passado para a função de acumulador.

A função reduz () terá 2 argumentos, uma função de acumulador e o segundo é o valor da semente.

Sintaxe

reduce(accumulator_func, seeder?) : Observable

Parâmetros

accumulator_func- (opcional). uma função que é chamada nos valores de origem dos observáveis.

seeder - ((opcional) Por padrão, é indefinido. O valor inicial a ser considerado para acumulação.

Valor de retorno

Ele retornará um observável que terá um único valor acumulado.

Veremos alguns exemplos para ver como funciona o operador de redução.

Exemplo 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));

Resultado

Total Price is: 2200