如何在JavaScript中执行关联数组/散列

我想用JavaScript计算/存储一些统计信息,C#中的等效代码在下面(我需要的功能是 - 键值对,字符串/整型键值对,通过键操纵值等),任何想法如何在JavaScript中实现相同的功能? 看起来像没有内置的字典或散列表?

Dictionary<string, int> statistics;

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

使用JavaScript对象作为关联数组。

关联数组:简单来说,关联数组使用字符串而不是整数作为索引。

创建一个对象

var dictionary = {};

Javascript允许您使用以下语法向对象添加属性:

Object.yourProperty = value;

另一种语法是:

Object["yourProperty"] = value;

如果您还可以使用以下语法创建键值对象映射

var point = { x:3, y:2 };

point["x"] // returns 3
point.y // returns 2

您可以使用for..in循环结构遍历一个关联数组,如下所示

for(var key in dict){
  var value = dict[key];
  /* use key/value for intended purpose */
}

var associativeArray = {};
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";

如果您来自面向对象的语言,您应该阅读本文。


除非你有一个特定的原因,否则就使用一个普通的对象。 Javascript中的对象属性可以使用散列表样式语法来引用:

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

现在可以将foobar元素引用为:

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

当然,这意味着你的钥匙必须是字符串。 如果它们不是字符串,它们会被内部转换为字符串,所以它可能仍然有效,YMMV。

链接地址: http://www.djcxy.com/p/91911.html

上一篇: How to do associative array/hashing in JavaScript

下一篇: How does a hash table work?