J'ai une enum que je transforme en array et j'aimerai récupérer uniquement les propriétés de mon enum et pas les méthodes qui y sont associées.

C'est pourquoi j'ai testé d'utiliser hasOwnProperty() dans mon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    var CounterTypeEnum = {
        Generic: { value: 1, name: "generic"},
        Level: { value: 2, name: "level"},
        Pressure: { value: 3, name: "pressure"},
    };
 
    CounterTypeEnum.counterTypeDictionary = function () {
        var enumArray  = [];
        for (var type in CounterTypeEnum) {
            if (CounterTypeEnum.hasOwnProperty(type) ) {
                enumArray.push({name : CounterTypeEnum[type].name , value : CounterTypeEnum[type].value });
            }
        }
        return enumArray;
    }
 
    CounterTypeEnum.tryGetName = function (index) {
        //code...
    };
 
   CounterTypeEnum.tryGetValue = function (name) {
        //code...
    };
 
    return CounterTypeEnum;
Ici j'envoie le resultat de CounterTypeEnum.counterTypeDictionary() à une combobox dans laquelle j'aimerai voir apparaître uniquement generic, level, pressure. Or actuellement il y a des espaces blancs qui s'y rajoutent correspondant à : CounterTypeEnum.tryGetName, CounterTypeEnum.tryGetValue, CounterTypeEnum.counterTypeDictionary.

Je cherche donc un moyen pour ne garder que le contenu de CounterTypeEnum et enlever le trygetname, trygetvalue, dictionary.

Merci pour votre aide.