Rxjs 按键可观察的过滤器

Rxjs 按键可观察的过滤器,rxjs,observable,Rxjs,Observable,我正试图根据父键是否包含特定的子键来筛选观察对象列表。父键是Supplier,每个Supplier都有一个代表用户的子键列表。下面的代码可以工作,只是它返回包含任何子用户密钥的每个供应商,而不仅仅是包含特定用户密钥(FBKey)的供应商 我意识到当前的过滤条件有点傻,但这正是我在网络上做了很多修改和查看后所处的位置 userIsSupplierAdministrator(FBKey: number): Observable<Supplier[]> { const suppliers$

我正试图根据父键是否包含特定的子键来筛选观察对象列表。父键是Supplier,每个Supplier都有一个代表用户的子键列表。下面的代码可以工作,只是它返回包含任何子用户密钥的每个供应商,而不仅仅是包含特定用户密钥(FBKey)的供应商

我意识到当前的过滤条件有点傻,但这正是我在网络上做了很多修改和查看后所处的位置

userIsSupplierAdministrator(FBKey: number): Observable<Supplier[]> {
const suppliers$ = this.af.database.list('supplier-administrators');
return suppliers$
  .filter(supplier => !isUndefined(this.af.database.object(`suppliers/${supplier.$key}/${FBKey}`)))
  .map(supplier => supplier.map(supp => this.af.database.object(`suppliers/${supp.$key}`)))
  .flatMap(supplierObs => Observable.combineLatest(supplierObs))
  .map(Supplier.fromJsonList);
userIsSupplierAdministrator(FBKey:number):可观察{
const suppliers$=this.af.database.list('supplier-administrators');
退货供应商$
.filter(supplier=>!未定义(此.af.database.object(`suppliers/${supplier.$key}/${FBKey}`)))
.map(supplier=>supplier.map(supp=>this.af.database.object(`suppliers/${supp.$key}`)))
.flatMap(供应商OBS=>可观察的.CombineTest(供应商OBS))
.map(供应商.fromJsonList);
}

如果您能就如何构造过滤器提出建议,使其只返回包含特定子密钥(FFBKey)的供应商,我将不胜感激

我正在使用Angular/Typescript/Firebase


向肖恩问好

我请求你完成这一过程,你将能够解决你的问题。 您遇到的问题与可观察对象无关您正在尝试修复正常的javascript问题

方法是

  • 从可观察对象获取json响应
  • 并使用以下概念过滤json

  • 谢谢Sandeep,JSON建议帮助我更好地了解了进展情况。但是我没有解决这个问题。当我更新过滤器以使用JSON.stringify(供应商)时,结果感谢Sandeep,JSON建议帮助我看到了进展得更好。但是我没有解决这个问题。当我更新过滤器以使用JSON.stringify(supplier)时,结果对象包含来自所有供应商的所有子键?我希望过滤器对每个供应商独立操作,而不是聚合所有子密钥。