为什么“经典”哈希有用?

时间:2014-01-10 22:47:42

标签: javascript hash hashmap prototypejs

我的任务是维护一些使用大量PrototypeJS的传统前端代码。我对他们在代码中使用的一些东西感到困惑。例如,the documentation描述了这个$H函数,用于创建“哈希”并以“经典哈希方式”访问其中的属性,这似乎是一个简单的obj.get('propName')

var h = $H({name: 'John', age: 26, country: 'Australia'});
// Equivalent to:
var h = new Hash({name: 'John', age: 26, country: 'Australia'});
// Can then be accessed the classic Hash way
h.get('country');
// -> 'Australia'

为什么这有用?我看到它使用了我正在维护的所有代码,最后决定我需要了解最初的意图是什么好一点。

2 个答案:

答案 0 :(得分:2)

来自Prototype.JS docs

  

由于JavaScript的本质,每个对象实际上都是一个哈希;但是Hash添加了许多方法,可以枚举键和值,迭代键/值对,将两个哈希合并在一起等等。

所以,基本上是因为你可以使用keysvalueseachmergeupdate等。

答案 1 :(得分:1)

“经典哈希”通常很有用,因为它提供快速键值对查找。在计算机科学术语中,算法复杂度是恒定的,或O(1)。这意味着您可以立即获取散列中任何键的值。在示例哈希中,键是:name,age,country

所以你可以通过调用h.get('name')快速获得名字(John),你可以通过调用h.get('age')快速获得他的年龄(26),你可以很快得到他的country(Australia),致电h.get('country')。

将此数据与您必须迭代的列表中存储此数据进行比较,以查找名称,年龄和国家/地区的值。