【问题标题】:Rxjs forkJoin map values from array dynamicallyRxjs forkJoin动态地从数组中映射值
【发布时间】:2022-12-05 17:07:58
【问题描述】:

您好,我有一个布尔可观察值数组,想执行逻辑 AND 运算,但截至目前,我传递的是静态值 a、b,但我不知道 totalKeys 数组中会有多少个值。

import { forkJoin } from 'rxjs';

...
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> {
private totalKeys: Observable<Boolean>[] = [];
// some logic
  
return forkJoin(this.totalKeys).pipe(
    map(([a, b]) => a && b)
  );
};

我如何动态地将元素添加到映射数组并在这些元素上使用逻辑 AND 而不是将静态参数传递给映射运算符。

【问题讨论】:

  • 您可以使用 reduce() 运算符对数组的元素执行逻辑与操作 return forkJoin(this.totalKeys).pipe( map(values =&gt; values.reduce((acc, val) =&gt; acc &amp;&amp; val)) );

标签: javascript angular typescript rxjs javascript-objects


【解决方案1】:

使用every

这看起来像跟随你。

map(every(Boolean))

【讨论】:

    猜你喜欢
    • 2020-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多