我正在请求一个 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;
}
为真的卖家。我的片段似乎不起作用。最好的方法是什么?
答案 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;
}
您似乎没有使用卖家筛选结果进行映射。 试试这个!