我需要使用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 hashSweetHashTable = {};
如果你需要你的键是任何对象,而不仅仅是字符串,那么你可以使用我的jshashtable。
function HashTable() {
this.length = 0;
this.items = new Array();
for (var i = 0; i < arguments.length; i += 2) {
if (typeof (arguments[i + 1]) != 'undefined') {
this.items[arguments[i]] = arguments[i + 1];
this.length++;
}
}
this.removeItem = function (in_key) {
var tmp_previous;
if (typeof (this.items[in_key]) != 'undefined') {
this.length--;
var tmp_previous = this.items[in_key];
delete this.items[in_key];
}
return tmp_previous;
}
this.getItem = function (in_key) {
return this.items[in_key];
}
this.setItem = function (in_key, in_value) {
var tmp_previous;
if (typeof (in_value) != 'undefined') {
if (typeof (this.items[in_key]) == 'undefined') {
this.length++;
} else {
tmp_previous = this.items[in_key];
}
this.items[in_key] = in_value;
}
return tmp_previous;
}
this.hasItem = function (in_key) {
return typeof (this.items[in_key]) != 'undefined';
}
this.clear = function () {
for (var i in this.items) {
delete this.items[i];
}
this.length = 0;
}
}
除非你有特别的理由不这样做,否则就用一个普通的对象。JavaScript中的对象属性可以使用哈希表样式的语法引用:
var hashtable = {};
hashtable.foo = "bar";
hashtable['bar'] = "foo";
foo和bar元素现在都可以被引用为:
hashtable['foo'];
hashtable['bar'];
// Or
hashtable.foo;
hashtable.bar;
当然,这意味着你的键必须是字符串。如果它们不是字符串,它们会在内部转换为字符串,所以它仍然可以工作。你的里程可能会有所不同。
你可以像下面这样创建一个:
var字典={名字:“一些程序员”,年龄:24岁,工作:“编写程序”}; //使用键进行迭代 For (var key in dictionary) { console.log("Key: "+ Key + ", "+ "Value: "+ dictionary[Key]); } //使用对象表示法访问键: console.log(" she name is: " + dictionary.Name)