簡體   English   中英

使用rxjs,如何將每個元素映射到多個元素

[英]Using rxjs, how to map each element to multiple elements

我懷疑這並不難,但我無法弄清楚該怎么做。 我有一個對象數組,每個對象包含一個數組。 在做了一些額外的處理之后,我想為每個元素檢索一個遠程資源。 我的問題是我的函數返回一個數組,但我希望數組的元素分開。

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 */);

我希望#2處的函數返回數據,使得#3的每個輸入都是一個單獨的字符串。 現在進入#3的是數組(在我的示例中是字符串對)。 謝謝!

在OP以及@tmslnz的幫助下......

.map(group => group.roster)更改為.flatMap(group => group.roster)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM