La meilleure façon de “aplatir” un tableau à l'intérieur d'un RxJS Observables

Mon backend renvoie souvent données comme un tableau à l'intérieur d'un RxJS 5 Observables (je suis en utilisant Angulaire 2).

Je me retrouve souvent à vouloir processus de la matrice des éléments individuellement avec RxJS opérateurs et je le fais avec le code suivant (JSBin):

const dataFromBackend = Rx.Observable.of([
  { name: 'item1', active: true },
  { name: 'item2', active: false },
  { name: 'item3', active: true }
]);

dataFromBackend
  //At this point, the obs emits a SINGLE array of items
  .do(items => console.log(items))
  //I flatten the array so that the obs emits each item INDIVIDUALLY
  .mergeMap(val => val)
  //At this point, the obs emits each item individually
  .do(item => console.log(item))
  //I can keep transforming each item using RxJS operators.
  //Most likely, I will project the item into another obs with mergeMap()
  .map(item => item.name)
  //When I'm done transforming the items, I gather them in a single array again
  .toArray()
  .subscribe();

La mergeMap(val => val) ligne ne se sent pas très idiomatique.

Est-il un meilleur moyen pour appliquer des transformations aux membres d'un tableau qui est émis par une Observable?

NB. Je veux RxJS opérateurs (vs les méthodes de tableau) pour transformer mes articles car j'ai besoin de la capacité de projet de chaque élément dans un deuxième observables. Cas d'utilisation typique: "backend" les retours de la liste des identifiants et j'ai besoin de demander à l'ensemble de ces éléments depuis le backend.

InformationsquelleAutor AngularChef | 2017-02-27