Comment trouver de la valeur à l'aide de la clé en javascript dictionnaire
J'ai une question à propos de Javascript du dictionnaire. J'ai un dictionnaire dans lequel les paires clé-valeur sont ajoutés dynamiquement comme ceci:
var Dict = []
var addpair = function (mykey , myvalue) [
Dict.push({
key: mykey,
value: myvalue
});
}
Je vais appeler cette fonction et passer les différentes clés et de valeurs. Mais maintenant, je veux récupérer ma valeur sur la base de la clé, mais je suis incapable de le faire. Quelqu'un peut me dire la bonne façon?
var givevalue = function (my_key) {
return Dict["'" +my_key +"'"] //not working
return Dict["'" +my_key +"'"].value //not working
}
Que ma clé est une variable, je ne peux pas utiliser Dict.my_key
Grâce.
Pour info, le capital-lettre identifiants (comme
Dict
) sont normalement utilisés pour les noms de classe, donc à l'aide d'un nom comme Dict
pourrait confondre les lecteurs de votre code. La pointe inférieure camelCase noms (par exemple,dict
, myKey
) serait susceptible de correspondre plus étroitement avec les nouvelles attentes des lecteurs.OriginalL'auteur A_user | 2012-07-09
Vous devez vous connecter pour publier un commentaire.
Tableaux en JavaScript ne pas utiliser de chaînes comme clés. Vous trouverez probablement que la valeur est là, mais la clé est un nombre entier.
Si vous faites
Dict
dans un objet, cela va fonctionner:La
myKey
variable est déjà une chaîne, de sorte que vous n'avez pas besoin de plus de citations.Pas si facilement. Vous aurez besoin de faire une boucle, en essayant de chaque valeur dans l'objet jusqu'à ce que vous avez obtenu le droit, puis de revenir sur cette touche. Le problème est qu'il peut y avoir deux valeurs, les mêmes, de sorte que vous devez mettre le code dans addpair() pour éviter les doublons.
Les tableaux en Javascript utiliser des chaînes de clés, et rien de ce que vous essayez de l'utiliser comme un tableau d'index seront contraints à une corde, derrière les coulisses. Vous pouvez confirmer cela par la création d'un objet avec un
toString
méthode et en l'utilisant comme un index de tableau. Il va utiliser quel que soit letoString
renvoi de la méthode.Vous avez raison, mais j'ai toujours compris que c'est un abus de l'objet de tableau 🙂 Elle peut aussi conduire à l'imprévisibilité des choses lorsque l'objet Array est prototypée par ici andrewdupont.net/2006/05/18/... en outre, des choses comme tableau.la longueur ne compte pas les clés de chaîne, donc j'ai toujours coller à l'entier seule ligne.
OriginalL'auteur Matt Gibson