如何根据值以角度过滤 Observable 数组

时间:2021-05-31 18:15:59

标签: angular filter rxjs observable

我正在请求一个 Web 服务并接收一个 observable 并循环它们以构建另一个如下所示的对象数组。

<a>

角度组件:

getElementByTagName("th").Click

使用这些卖家 Observable 创建一个对象数组。

export interface Seller {
  email?:String;
  isOnline?:boolean;
  name?:String;
}

这里我只想过滤掉sellers: Observable<Seller[]>; constructor(firestore: AngularFirestore) { this.sellers = firestore.collection('sellers').valueChanges(); } getSllers(){ return this.sellers; } 为真的卖家。我的片段似乎不起作用。最好的方法是什么?

3 个答案:

答案 0 :(得分:1)

米克尔是对的。我想你的意思是:

return sellers
 // filter the array
 .filter(selller => seller.isOnline === true)
 // map the filtered array
 .map(seller => {
  return {
    name: seller.name,
    isOnline: seller.isOnline,
    email: seller.email,
  };
});

答案 1 :(得分:1)

getSellerDetails() {
    return this.getSllers().pipe(
        // Filter only sellers that isOnline
        map(sellers => sellers.filter(seller => seller.isOnline == true)),
        // Map all filtered sellers to the wanted interface
        map(sellers => {
            return sellers.map(seller => {
              return {
                name: seller.name,
                isOnline: seller.isOnline,
                email: seller.email
              }
           });
        })
      )
 }

答案 2 :(得分:0)

if (counter > 20) {
int maximumVal = 20;
else {
maximumVal = counter;
}

您似乎没有使用卖家筛选结果进行映射。 试试这个!

相关问题