2016-09-07 14 views
17

Jaki jest właściwy sposób na przechodzenie między lekcjami wyliczania w maszynie do pisania? (Obecnie używając typescript 1.8.1)Maszynopis: jak zapętlić wartości wyliczenia do wyświetlenia w przyciskach radiowych?

Mam następujące wyliczenia:

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

Wynik wyświetlany jest lista

0 
1 
2 
3 
Intrusion, 
Identification, 
AbsenceTest, 
Autre 

chcę tylko 4 iteracji w pętli ponieważ w enum są tylko 4 elementy, nie chcę mieć 0 1 2 i 3, które wydają się być numerami indeksu enum.

Odpowiedz

45

dwie opcje:

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

Albo

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

(code in playground)

+0

to nie działa, ponieważ 0 1 2 3 są łańcuchami. – abreneliere

+4

Dlatego istnieje opcja 'isNaN (Number (...))'. Działa na placu zabaw, który dzieliłem. –

+0

Tak, działa, musiałem coś przeoczyć. Zauważyłem, że to najlepsze rozwiązanie, którego nie ma w powielanym pytaniu. – abreneliere

Powiązane problemy