2017-07-28 16 views
1

メンバーに関する情報を含むサービスがあります。変数の1つはチーム文字列です。サービスからユニークな配列を取得する

私のコンポーネントでは、サービスメソッドを呼び出して、コンポーネントに情報を表示する前に情報を変数に格納します。

サービス内のチームの一意のリストを使用して、コンポーネント内の変数「チーム」を入力したいと思います。これは書込みを考慮する必要があります(toUpperCase()を使用します)。

マイサービス:

import { Injectable } from '@angular/core'; 

@Injectable() 
export class UserinfoService 
{ 
    //methods or services 
    getMembers() 
    { 
     return [ 
      { 
       imageUrl: "../assets/images/filler.jpg", 
       firstName: "filler", 
       lastName: "filler", 
       team: "TEAM A", 
       number: "+123456798", 
       bio: "Lorem ipsum dolor sit amet,...", 
       isActive: true 
      }, 
      { 
       imageUrl: "../assets/images/filler.jpg", 
       firstName: "filler", 
       lastName: "filler", 
       team: "TEam A", 
       number: "+123456798", 
       bio: "Lorem ipsum dolor sit amet,...", 
       isActive: false 
      }, 
      { 
       imageUrl: "../assets/images/filler.jpg", 
       firstName: "filler", 
       lastName: "filler", 
       team: "TEAM B", 
       number: "+123456798", 
       bio: "Lorem ipsum dolor sit amet,...", 
       isActive: true 
      }, 
     ]; 
    } 
    //constructor 
    constructor() 
    { 
    } 
} 

私のコンポーネント:ES6で

import { Component, OnInit } from '@angular/core'; 
import { UserinfoService } from '../services/userinfo.service'; 


@Component({ 
    selector: 'app-teammembers', 
    templateUrl: './teammembers.component.html', 
    styleUrls: ['./teammembers.component.css'] 
}) 
export class TeammembersComponent implements OnInit 
{ 
    //props 
    teammembers: any[]; 
    teams:any[]; 

    constructor(userinfoService: UserinfoService) 
    { 
     //getData 
     this.teammembers = userinfoService.getMembers(); 
    }    

    ngOnInit() { 
    } 
} 
+0

'this.teams = UNIQ(=> member.team this.teammembers.map(メンバー))'。 'uniq'を自分で書くことも、ライブラリを使うこともできます。 –

+1

'[...新しいセット(this.teammembers.map(m => m.team))] ' – Weedoze

答えて

1

、あなたは1行でこれを達成することができます。以下の例である:

this.teams = this.teammembers 
       .map(item => item.team) 
       .filter((value, index, self) => self.indexOf(value) === index) 
+1

これは素晴らしいです。完璧に動作します。それが実際にどのように機能するか私に説明してもらえますか?ありがとうございました:) – user3110254

+0

@ user3110254ここにドキュメントがあります:https://docs.microsoft.com/en-us/scripting/javascript/reference/map-method-array-javascript – Faisal

関連する問題