2017-08-29 17 views
0

は私がこのフィルタリングされた配列の長さを見つける方法は?ここ

<table border="1" cellpadding="5" cellspacing="3"> 
    <tr> 
    <td>Device Id</td> 
    <td>Number of Users</td> 
    <td>Status</td> 
    <td>Action</td> 
    </tr> 
    <tr *ngFor="let hero of users"> 
    <td>{{ hero.device_id}}</td> 
    <td>{{ hero.users?.length }}</td> 
    <td>{{ hero.device_status }}</td> 
    </tr> 
    </table>  

しかし、私を表示するためngForを使用しているデバイスと

Device    No: users Status 
ASDFGHJ1234567  2   Y 
ここ

以下のようなユーザーをリストする必要が私のデータベースコレクション

{ 
    "_id" : ObjectId("59a52c536851fc3289875d14"), 
    "device_id" : "ASDFGHJ1234567", 
    "users" : [ 
     { 
      "user_name" : "Athira", 
      "player_level" : "beginner", 
      "created_on" : "2017-01-25 09:54:40", 
      "updated_on" : "2017-01-25 09:54:40", 
      "status" : "Y" 
     }, 
     { 
      "user_name" : "Sandeep", 
      "player_level" : "beginner", 
      "created_on" : "2017-01-25 09:54:40", 
      "updated_on" : "2017-01-25 09:54:40", 
      "status" : "D" 
     } 
    ], 
    "device_created_on" : "2017-01-25 09:54:40", 
    "device_status" : "Y" 
} 

ですステータス= 'Y'のユーザーのみをカウントする必要があります。ここだけUSER_NAME = "Athiraは"

どのように私はこれを実装することができますカウントする

は、あなたがこのような配列をフィルタリングすることができ、あなたに

答えて

4

ありがとう:

getCount(hero: any): number { 
if (!hero || !hero.users) return 0; 

return hero.users.filter(u => u.status === 'Y').length; 
} 
+0

それは誤り – Athi

+0

compiler.es5.jsをスロー:1690不明なエラー:テンプレートは、エラーを解析: パーサーエラー:バインディングは、[{{ヒーローの列25で割り当てを含めることはできませんか? ( "\t​​{{hero.device_id}})で、.users?.filter(u => u.status === 'Y')。 \t​​[ERROR - > {{主人公.users .filter(U => u.status === 'Y')の長さ}?} \t​​ – Athi

+0

あなたはそれを試してみましたあなたのタイスクリプトの関数で?角度がhtmlでこれを処理できるかどうかはわかりません –

0

あなたもこれを行うことができます。あなたのTSファイルでarrDataはあなたの応答でみましょう

var data = this.arrData.users; 

    var count = 0; var i=0; 

    data.forEach(element => { 
     if(data[i].status == "Y"){ 
     count++; 
     } 
     i++; 
    }); 

    console.log(count); //you will get count value which is users with status 'Y' 
関連する問題