164 votes

Comment puis-je obtenir une collection de clés dans un dictionnaire JavaScript ?

J'ai un dictionnaire :

var driversCounter = {
    "one":   1,
    "two":   2,
    "three": 3,
    "four":  4,
    "five":  5
}

Maintenant, je dois le montrer dans une liste déroulante. Comment puis-je obtenir la collection de clés dans mon dictionnaire ?

21voto

Joseph the Dreamer Points 43727

Pour boucler le "dictionnaire" (nous l'appelons objet en JavaScript), utilisez une boucle for in :

for(var key in driversCounter) {
    if(driversCounter.hasOwnProperty(key)) {
        // key                 = keys,  left of the ":"
        // driversCounter[key] = value, right of the ":"
    }
}

10voto

Aadit M Shah Points 17951

Cela fonctionnera dans toutes les implémentations JavaScript :

var keys = [];

for (var key in driversCounter) {
    if (driversCounter.hasOwnProperty(key)) {
        keys.push(key);
    }
}

Comme d'autres mentionnés précédemment, vous pouvez utiliser Object.keys, mais cela peut ne pas fonctionner dans les moteurs plus anciens. Vous pouvez donc utiliser le patch singe suivant :

if (!Object.keys) {
    Object.keys = function (object) {
        var keys = [];

        for (var key in object) {
            if (object.hasOwnProperty(key)) {
                keys.push(key);
            }
        }
    }
}

8voto

Amil Sajeev Points 140

Il suffit d'utiliser Object.keys() :

var driversCounter = {
                      "one": 1,
                      "two": 2,
                      "three": 3,
                      "four": 4,
                      "five": 5
                     }
console.log(Object.keys(driversCounter));

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