【发布时间】: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 => values.reduce((acc, val) => acc && val)) );
标签: javascript angular typescript rxjs javascript-objects