608 votes

Comment puis-je mettre en œuvre un Dictionnaire ou d'une table de hachage en Javascript?

Je veux calculer/stocker des informations statistiques à l'aide de JavaScript, le code équivalent en C# est ci-dessous (fonctionnalités dont j'ai besoin sont -- paire clé-valeur, string/int valeur de la clé de la paire, manipuler des valeurs par touches, etc.), toutes les idées sur la façon de mettre en œuvre la même fonction en JavaScript? Regarde comme il n'est pas intégré dans le Dictionnaire ou une table de hachage?

Dictionary<string, int> statistics;

statistics["Foo"] = 10;
statistics["Goo"] = statistics["Goo"] + 1;
statistics.Add("Zoo", 1);

592voto

Alek Davis Points 3320

440voto

Dani Cricco Points 2628
var associativeArray = {};
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";

Si vous sont à venir à partir d'un langage Orienté Objet, vous devez vérifier cet article

134voto

roryf Points 14520

A moins d'avoir une raison de ne pas, il suffit d'utiliser un objet normal. Les propriétés de l'objet en Javascript peut être référencé à l'aide de la table de hachage la syntaxe de style:

var hashtable = {};
hashtable.foo = "bar";
hashtable['bar'] = "foo";

Peut ensuite être référencé en tant que:

hashtable['foo'];
// or
hashtable.bar;

Bien sûr, cela ne signifie vos clés doivent être des chaînes de caractères.

50voto

Shog9 Points 82052

Étant donné que chaque objet en JS se comporte comme - et est généralement mis en œuvre comme une table de hachage, je viens de passer avec ça...

var hashSweetHashTable = {};

18voto

Tim Down Points 124501

Si vous avez besoin de vos clés pour être un objet plutôt que de simplement les chaînes ensuite, vous pouvez utiliser mon jshashtable.

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