我需要使用JavaScript存储一些统计数据,就像我在c#中做的那样:
Dictionary<string, int> statistics;
statistics["Foo"] = 10;
statistics["Goo"] = statistics["Goo"] + 1;
statistics.Add("Zoo", 1);
JavaScript中是否存在哈希表或Dictionary<TKey, TValue>之类的东西? 我如何以这种方式存储值呢?
我需要使用JavaScript存储一些统计数据,就像我在c#中做的那样:
Dictionary<string, int> statistics;
statistics["Foo"] = 10;
statistics["Goo"] = statistics["Goo"] + 1;
statistics.Add("Zoo", 1);
JavaScript中是否存在哈希表或Dictionary<TKey, TValue>之类的东西? 我如何以这种方式存储值呢?
当前回答
由于JavaScript中的每个对象都像哈希表一样,并且通常是作为哈希表实现的,所以我就这样…
var hashSweetHashTable = {};
其他回答
使用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 Object.keys(dict)){
var value = dict[key];
/* use key/value for intended purpose */
}
var associativeArray = {};
associativeArray["one"] = "First";
associativeArray["two"] = "Second";
associativeArray["three"] = "Third";
如果你来自面向对象的语言,你应该看看这篇文章。
由于JavaScript中的每个对象都像哈希表一样,并且通常是作为哈希表实现的,所以我就这样…
var hashSweetHashTable = {};
如果你需要你的键是任何对象,而不仅仅是字符串,那么你可以使用我的jshashtable。
你可以像下面这样创建一个:
var字典={名字:“一些程序员”,年龄:24岁,工作:“编写程序”}; //使用键进行迭代 For (var key in dictionary) { console.log("Key: "+ Key + ", "+ "Value: "+ dictionary[Key]); } //使用对象表示法访问键: console.log(" she name is: " + dictionary.Name)