172 votes

JavaScript - Impossible de définir une propriété non définie

Mon code :

var a = "1",
b = "hello",
c = { "100" : "some important data" },
d = {};

d[a]["greeting"] = b;
d[a]["data"] = c;

console.debug (d);

Je reçois l'erreur suivante :

Erreur de Type Non Rattrapée : Cannot set property 'greeting' of undefined.

J'essaie de faire quelque chose de similaire à un tableau associatif. Pourquoi cela ne fonctionne-t-il pas ?

2 votes

D[a] est indéfini. En fait, d["1"] est indéfini.

5voto

iohzrd Points 73

Je ferais juste une simple vérification pour voir si d[a] existe et si non l'initialiser....

var a = "1",
    b = "hello",
    c = { "100" : "some important data" },
    d = {};

    if (d[a] === undefined) {
        d[a] = {}
    };
    d[a]["greeting"] = b;
    d[a]["data"] = c;

    console.debug (d);

1voto

Nikhil Yadav Points 41

d = {} est un objet vide en ce moment.

Et d[a] est aussi un objet vide.

Il n'a pas de valeurs clés. Vous devez donc initialiser les valeurs des clés à ceci.

d[a] = {
greetings:'',
data:''
}

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