302 votes

Dactylographié: comment parcourir les valeurs enum pour les afficher dans des boutons radio?

Quelle est la bonne façon de parcourir les littéraux d'une énumération en dactylographie? (Utilise actuellement typographe 1.8.1)

J'ai l'énumération suivante:

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

Le résultat affiché est une liste

 0
1
2
3
Intrusion,
Identification,
AbsenceTest,
Autre
 

Je ne veux que 4 itérations dans la boucle car il y a seulement 4 éléments dans l'énum, je ne veux pas avoir 0 1 2 et 3 qui semblent être des numéros d'index de l'énum.

519voto

Nitzan Tomer Points 11798

Deux options:

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

Ou

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

(code de l'aire de jeux)


Modifier

Chaîne enums regard différent que réguliers, par exemple:

enum MyEnum {
    A = "a",
    B = "b",
    C = "c"
}

Compile:

var MyEnum;
(function (MyEnum) {
    MyEnum["A"] = "a";
    MyEnum["B"] = "b";
    MyEnum["C"] = "c";
})(MyEnum || (MyEnum = {}));

Qui vous donne cet objet:

{
    A: "a",
    B: "b",
    C: "c"
}

Vous pouvez obtenir toutes les touches (["A", "B", "C"]) comme ceci:

Object.keys(MyEnum);

Et les valeurs (["a", "b", "c"]):

Object.keys(MyEnum).map(key => MyEnum[key])

Ou à l'aide de l'Objet.les valeurs de():

Object.values(MyEnum)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X