2016-09-07 5 views
17

Каков правильный способ прокрутки литров перечислимого типа в машинописном машиностроении? (В настоящее время с помощью typescrip 1.8.1)Typcript: как прокручивать значения enum для отображения в переключателях?

Я получил следующее перечисление:

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); 
    } 
} 

Результат отображается представляет собой список

0 
1 
2 
3 
Intrusion, 
Identification, 
AbsenceTest, 
Autre 

Я хочу только 4 итерации в цикле поскольку в перечислении всего 4 элемента, я не хочу иметь 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