【发布时间】:2018-07-24 14:29:11
【问题描述】:
我有以下可观察的数组:
const stages = [
{Id: 1, Name: "First stage", RoleId: 71},
{Id: 2, Name: "Second stage", RoleId: 72},
{Id: 3, Name: "Third stage", RoleId: 73}];
const roles = [
{Id: 71, Name: "Stuff", Key: "STF"},
{Id: 72, Name: "Manager", Key: "MGR"},
{Id: 73, Name: "CEO", Key: "CEO"}];
所以我有"MGR" 键,我想观察stages,其中RoleId 等于经理的角色。
它们是两个可观察对象:阶段和角色。我已经阅读了combineLatest 方法,这可能对我有帮助,但我不知道如何过滤组合结果。
const filteredStages = stages.combineLatest(roles, (s, r) => ({
s: s,
r: r
}))
.filter(x => ?);
过滤阶段的正确方法是什么?
【问题讨论】:
-
你想合并结果,
stage + role在一个对象中吗? -
你真的需要为此使用 Observables 吗?我的意思是
stages和roles是数组,Observables 发射数组或 Observable 分别发射每个项目? -
@IsaacFerreira 不。我只需要获取阶段包含
RoleId: 72的数组的可观察性,但是我通过使用可观察角色中的"MGR"键获得此角色ID。 -
@martin 他们从 redux 状态来找我。所以我有两个可观察的:阶段和角色。实际上它们是模型数组。我想得到过滤的阶段数组,其中
RoleId等于 72,并且这个数组应该包含在 observable 中。
标签: javascript rxjs