我的代码如下:
ngOnInit() {
this.tenantPackagesService.getTenantPackages().takeUntil(this.destroyed).subscribe();
this.tenantPackagesService.tenantPackagesObs.filter(packages => !!packages).takeUntil(this.destroyed).subscribe(packages => {
this.selectedPackage;
let flags = {};
this.packages = packages
.filter(function (entry) {
if (flags[entry.id]) {
return false;
}
flags[entry.id] = true;
return true;
})
.map(o => { return { label: `${o.id}`, value: o } });
// Versions of package
this.versions = packages
// Here I need filter
.map(o => { return { label: `${o.version}`, value: o } });
})
}
有一个带包的对象数组。每个包都有版本。有很多包含相同名称但版本不同的包。我按唯一名称过滤了包,现在我需要映射不同版本的选定包(this.selectedPackage)。 所以,如果我选择package1,我只需要获得与该包相关联的版本。 如何用.filter方法做到这一点?有可能吗?
答案 0 :(得分:1)
试试这个:
const filteredPackage = this.versions.filter(function (el) {
return el.version === this.selectedPackage;
});
有关如何使用.filter的更多细节: