2011-04-07 58 views

回答

3

号散列键不是很昂贵的操作。当然,这并不足以证明将这个示例工作作为一个真正的hashtable替代品所需的难看的混乱。

+0

使用这个虚幻视图的哈希表是否有任何性能下降? – Skizit 2011-04-07 20:13:15

+0

不需要。您必须遍历密钥表的每个元素才能找到要查找的内容。适当的哈希表往往适用于生成可重复位置或至少为其中一个起点的算法。阅读关于数据结构的基本计算机科学教科书,看看为什么这会在非常大的散列表中出现问题。 – 2011-04-11 14:40:43

0

JavaScript中的数组很多都是哈希表,它们的键只是整数。它们不是“真正”的数组,它们是连续的内存块,可以像大多数语言一样通过偏移量(索引)访问。我的猜测是原作者认为JavaScript中的数组是以经典意义实现的。

所以这实际上是低效率的两倍,只是做q["key"] = "value"并使q代替数组。

0

我想它可能只是一个偏好,但它已经很多年的惯用。例如,在C语言中,数组有一个类型,并且要获得一个不同类型的数组(比如array [key0],array [value0],array [key1],array [value1])更加困难,键和值在不同的数组中。对我来说,这将是一个在同一个数组中有键和值的噩梦,因为我总是必须记住将任何索引加倍到该数组中,然后为该值增加它。我的懒脑太多了。

相关问题