2016-09-07 8 views
17

टाइपस्क्रिप्ट में एक enum के litterals के माध्यम से लूप करने का सही तरीका क्या है? टाइपस्क्रिप्ट: रेडियो बटन में प्रदर्शन के लिए enum मानों के माध्यम से कैसे लूप करें?

मैं निम्नलिखित enum मिल गया है (वर्तमान में typescrip 1.8.1 का प्रयोग करके):

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 पुनरावृत्तियों चाहते हैं है क्योंकि enum में केवल 4 तत्व हैं, मैं 0 1 2 और 3 नहीं चाहता हूं जो कि enum की अनुक्रमणिका संख्या प्रतीत होता है।

उत्तर

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 (संख्या (...)) के लिए एक चेक है। यह खेल के मैदान में काम करता है मैंने साझा किया –

+0

हां यह काम करता है, मुझे कुछ याद करना होगा। मैंने देखा कि यह सबसे अच्छा समाधान है जो डुप्लिकेट प्रश्न में नहीं है। – abreneliere

संबंधित मुद्दे