2016-09-07 12 views
17

Typescriptで列挙のリテラルをループする適切な方法は何ですか? 私は、次の列挙持っTypescript:ラジオボタンで表示する列挙値をループする方法は?

(現在typescrip 1.8.1を使用して):表示された結果は、私はループ内でのみ4回の反復をしたいですかリスト

0 
1 
2 
3 
Intrusion, 
Identification, 
AbsenceTest, 
Autre 

ある

export enum MotifIntervention { 
    Intrusion, 
    Identification, 
    AbsenceTest, 
    Autre 
} 

export class InterventionDetails implements OnInit 
{ 
constructor(private interService: InterventionService) 
{ 
    let i:number = 0; 
    for (let motif in MotifIntervention) { 
     console.log(motif); 
    } 
} 

を列挙型には4つの要素しかないので、enumのインデックス番号のように見える0 1 2と3を持つことは望ましくありません。

答えて

45

つのオプション:

for (let item in MotifIntervention) { 
    if (isNaN(Number(item))) { 
     console.log(item); 
    } 
} 

それとも

Object.keys(MotifIntervention).filter(key => !isNaN(Number(MotifIntervention[key]))); 

code in playground

+0

0 1 2 3が文字列であるため、それは動作しません。 – abreneliere

+4

そのため、isNaN(Number(...))のチェックがあります。それは私が共有した遊び場で動作します –

+0

はい、それは動作します、私は何かを逃した必要があります。私は重複した質問にない最高の解決策であることに気付きました。 – abreneliere

関連する問題