2017-11-03 14 views
1

は、私は以下のようなコードを持っている:Angular2 .filter配列

 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メソッドでこれを行う方法?出来ますか?

+2

:.filter使用方法の

const filteredPackage = this.versions.filter(function (el) { return el.version === this.selectedPackage; }); 

詳細を'lodash'と' groupBy'関数です。 –

答えて

関連する問題