我试图从列表中筛选出已归档的项目(observables)
this.archived = afDB.list('/users/'+uid+'/archived/',ref => ref.orderByKey().limitToLast(100)).valueChanges();
this.items = afDB.list('alerts',ref => ref.orderByKey().limitToLast(20)).valueChanges();
// let newItems$ = Observable.from(this.items);
// let archives$ = Observable.of(this.archived);
this.new_items = Observable.combineLatest([ this.items,
this.archived ]).filter(([items, archived]) => {
console.log('Arch: '+JSON.stringify(items.id) );
var item_array =[];
for(var a in items)
{
item_array.push(items[a]);
for (var b in archived)
{
if(items[a].id === archived[b].id)
{
// item_array[archived[b].id].remove();
}
}//end of b
}//end of a
return item_array;
});
非常感谢您的意见。
[更新]我正在输入两个observable - 尝试过滤并映射它们然后我希望收到一个observable作为输出 - less和archived(2nd obserservable)项。我将他们作为this.items传递给前端,带有|异步管道。
预期:已归档的项目将从this.items中过滤掉 实际:没有任何事情发生,只返回完整的Feed。
[已编辑]继承我的数据集
已归档商品: -L3fvdIPe1K7wtFO-MFR {id:" 430118153785650_1182592608538197"}
项目看起来像:
430118153785650_1183263311804460 {all_clear:true,category:"",created_time:" 2018-01-23T18:41:26 + 0000",id:" 430118153785650_1182592608538197&#34 ;,消息:" ...",标题:""}
(我们正在比较每个中的id元素进行过滤)
谢谢! 基兰