【发布时间】:2018-04-16 05:46:59
【问题描述】:
我有如下代码:
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 方法做到这一点?有可能吗?
【问题讨论】:
-
如果是你需要的
groupBy,建议你看看lodash和groupBy函数。
标签: javascript angular filter ecmascript-6