2
これは難しいとは思わないが、どうやってそれを行うのか分からない。私はオブジェクトの配列を持っていて、各オブジェクトは配列を含んでいます。追加の処理をした後、それぞれの要素のリモートリソースを取得する必要があります。私の問題は、私の関数は配列を返しますが、私は配列の要素を分離したい。rxjsを使って、各要素を複数の要素にマップする方法
return Rx.Observable.from([ // 1
{ "rosters": ["a/name1", "b/name2"] },
{ "rosters": ["c/name3", "c/name4"] }])
.map(group => group.rosters) // 2
.map(roster => roster.substring(0, roster.indexOf('/'))) // 3
.distinct() // have I seen this before?
.map(folder => http.get(URL + folder + '/ads.json').map(res => res.json())
.map(adData => adData.ads)
.reduce(/* choose random ad */);
#3の各入力が別の文字列になるように#2の関数にデータを返すようにします。 #3に入っているのは配列です(私の例では文字列のペアです)。ありがとう! .flatMap(group => group.roster)
へOPからだけでなく、@tmslnzから両方の支援により
まず、オブジェクトの周りに角括弧が必要ですか?すなわち、あなたの最初の行には現在、 '.from({"ロスター ":...}、{...})'があります。それは '.from([{"ロスター ":...}、{...}])'であるべきですか?角括弧の挿入に注意してください。私はそれらを持っていないときに私はエラーを取得します。 –
あなたが正しいです、それは私の質問の誤字ですが、コード内ではありませんでした。あなたが提案したものに変更しました –
私は特にRxに慣れていませんが、(2) – tmslnz