什么是javascript中的哈希?我怎样才能为数组使用哈希?

Rav*_*eja 4 javascript hash

我在我的对象原型中使用了一个数组,它基本上有添加,删除,附加到它的搜索功能.

像这样的东西

myobj = function() {
  this.Array_ = [];
}

myobj.prototype.add = function(item) {
  goog.array.insert(this.Array_, item);
}

myobj.prototype.hasItem = function(item) {
  goog.array.contains(this.Array_, item);
}
Run Code Online (Sandbox Code Playgroud)

在我的例子中,一个示例数组将列出整数.[1,2,3,4]

但后来我才知道这是非常昂贵的,如果我使用哈希,可以节省成本.有人可以用上面的例子来解释哈希的使用.

geo*_*org 8

"哈希"这个词有很多含义,但在这种情况下,它可能是指通用的javascript对象,它们是内部的"哈希表".对象具有内置的"添加"和"包含"功能:

foo = {}

foo['x'] = 1   // "add"
'x' in foo     // "contains"
Run Code Online (Sandbox Code Playgroud)

但请注意,键总是转换为字符串,因此如果您需要其他类型的键(例如通用对象),则必须使用自定义函数,例如:

contains = function(ary, obj) {
    return ary.indexOf(obj) >= 0;
}

add = function(ary, obj) {
    if (!contains(ary, obj))
        ary.push(obj)
}
Run Code Online (Sandbox Code Playgroud)