我怀疑这并不难,但我无法弄清楚如何做到这一点。我有一个对象数组,每个对象包含一个数组。在做了一些额外的处理之后,我想为每个元素检索一个远程资源。我的问题是我的函数返回一个数组,但我希望数组元素分开。
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的是数组(在我的示例中是字符串对)。谢谢!
答案 0 :(得分:1)
在OP以及@tmslnz的帮助下......
将.map(group => group.roster)
更改为.flatMap(group => group.roster)
。