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