【发布时间】:2020-09-03 08:12:11
【问题描述】:
我遇到了一个用数组过滤 observable 的问题。 让我解释一下……
我有:
- products$:可观察的;
- filteredProducts$:可观察的;
- selectedFilters = [['过滤器名称', idOfFilter], ['过滤器名称', idOfFilter]]; (开头为空)
我想将过滤结果设置为过滤产品。 对于过滤器,我必须检查产品的过滤器数组是否包含过滤器的名称以及产品值数组是否包含过滤器 ID。
到目前为止,我一直在写这篇文章,但我不知道如何真正过滤我的 Observable...
export class ProductsFilterComponent extends BaseComponent implements OnInit {
@Select(FiltersState.getAllFilters) filters$: Observable<any>;
@Input() products$: Observable<Product[]>;
filteredProducts$: Observable<Product[]>;
public tempProducts$: Observable<Product[]>;
public selectedFilters = [];
constructor(
private store: Store) { super(); }
ngOnInit() {
this.store.dispatch(new GetAllFilters());
this.uns = this.products$.subscribe(res => console.log('products from filter component', res));
}
private filterProducts() {
this.filteredProducts$ = this.products$.pipe(
map(productsArray =>
productsArray.filter(product => {
product.filters.filter(filters => filters.values.includes(5));
}))
);
}
}
【问题讨论】:
标签: angular filter rxjs observable