我有3个流来自firebase返回的人员ID数组:
我如何合并他们只会让那些有狗ids的男性?
是否有运营商可以从多个流中提供常见ID? 我看了here,我似乎找不到正确的操作符。
我可以合并它们并使用Distinct但它会删除它们而不是给它们。
答案 0 :(得分:1)
您可以使用最新组合并过滤数组:
var menWithDogsFromTexas = Rx.Observable.combineLatest(
menIds, withDogsIds, fromTexasIds,
(men, dogs, texas) => {
return men
.filter(menId => dogs.indexOf(menId) >= 0)
.filter(menId => texas.indexOf(menId) >= 0);
}
);
这是一个jsbin that demonstrate it,我甚至动态更新了德州的ID,以显示它反映在结果中。
你没有提到它,但我认为你想要所有带有来自德克萨斯州的狗的男人。如果没有,只需删除最后一个过滤器。