Observable - añadir datos con el mapa?

votos
-1

Tengo este código

this.store
  .select(s => s.pins)
  .pipe(filter(s => !s.loading))
  .subscribe(pinsState => {
    this.listItems = pinsState.pins;
  });

pins es una matriz de objetos.

Quiero volver a calcular un valor en cada objeto de la matriz como consigo los datos. Por ejemplo:

pins.calculatedval = calcnewval()

¿Cómo uso el mapoperador para hacer esto? ¿O hay otro operador que debo usar?

Publicado el 19/09/2018 a las 17:07
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
1

Se puede utilizar tap()para alterar los pasadores. Usted no tiene que devolver nada, la corriente seguirá conteniendo la pinState partir this.store.

this.store
    .pipe(
         filter(s => !s.loading),
         tap(s => s.pins.forEach(pin => pin.calculatedVal = calcnewval()))
     )
     .subscribe(x => this.listItems = x.pins);

También en el ejemplo original utilizado select()que creo que está en desuso en favor de map()y que podría causar un error, así como el filtro utiliza una propiedad del padre del objeto que asignó a.

Respondida el 19/09/2018 a las 17:17
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more