1

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

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

4

3 回答 3

2

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

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

于 2012-09-09T14:48:00.760 回答
1

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

所以 :

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

等同于:

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

这与以下内容相同:

var a = {};
a["id"] = "aa";
于 2012-09-09T14:06:52.610 回答
0

关联数组和哈希表是一样的。
这些表达式通常也具有相同的含义:字典、关联数组、hashmap、map、hashtable 和……不胜枚举。

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

于 2020-09-04T22:35:13.403 回答