Javascript哈希表与关联数组

时间:2012-09-09 13:51:56

标签: javascript arrays hashtable associative

我是javascript的新手,我找不到有关某些问题的答案,其中一个是:

当我们可以将对象用作易于使用且性能非常好的关联数组时,为什么js会对哈希表数据结构有用?

3 个答案:

答案 0 :(得分:2)

  

为什么在js中我们可以使用的哈希表数据结构是有用的   对象作为关联数组,易于使用且具有非常多   表现不错?

我可以成像实现哈希表数据结构的唯一原因是你想要保留元素的顺序。对象的for…in循环并不保证返回属性("键")的顺序,即使通常您可以按时间顺序获取它们(最后添加,最后一次)回)。但它并不能保证。例如,旧版本的Opera以明显随机的顺序返回属性。所以,如果你需要一个" ordered"哈希表,你需要自己实现它。

答案 1 :(得分:1)

javascript哈希表和javascript关联数组(和javascript对象)在下划线实现中都是一样的。这些只是不同的语法。

所以:

var a = {};
a.id = "aa";

与:

相同
var a = new Object();
a.id = "aa";

与...相同:

var a = {};
a["id"] = "aa";

答案 2 :(得分:0)

关联数组和哈希表相同。
这些表达式通常也具有相同的含义:字典,关联数组,hashmap,map,hashtable以及列表等等。

尽管简单的ARRAY和HASHTABLE之间有区别。 如果要搜索数组中的项目,则其中包含的项目越多,搜索所需的时间就越长。 例如,在具有10000个元素的数组中搜索项目所花费的时间可能比在具有100个元素的数组中搜索时间长100倍。 使用哈希表,无论您有多少个元素,性能都保持不变。 (是100个元素,甚至是99999999个元素...)