2017-08-18 9 views
0

私はフィルタリングしたいオブジェクトの配列を持っています。 Observablesを使うのは良い考えだと思った。これは正しいです?Observableを使ってデータをフィルタリングする

export class MyClass 
{ 
    public item1: string; 
    public item2: string; 
} 

let myArray = MyClass[]; 

myArray.push({ item1: 'foo1', item2: 'bar1'}) 
myArray.push({ item1: 'foo2', item2: 'bar2'}) 

Observable.of(myArray) 
    .map(data => data.item1) 
    .subscrite(data => <<here there should be a list of strings here: ['foo1', 'foo2']>>) 

何が欠けていますか?これはいい考えですか?

答えて

1

Observable.of(array)を実行すると、配列全体を含む1つのエントリでストリームが生成されます。次にmapは未定義となり、何も出力されません。

それは二つの要素でストリームを作成しますので、この例では動作します:https://plnkr.co/edit/1fqjGwGtUZKv0jDGuOkA

あなたがマップするためにスプレッド演算子を使用することができ、配列の場合:私はここにこれを示す簡単な例を作成し

const o1 = { item1: 'foo1', item2: 'bar1'}; 
const o2 = { item1: 'foo2', item2: 'bar2'}; 
Observable.of(o1, o2) 
    .map(data => data.item1) 
    .subscribe(data => console.log(data)); 

複数の引数に配列:

Observable.of(...myArray) 
    .map(data => data.item1) 
    .subscribe(data => console.log(data)); 
関連する問題