4

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

像这样的东西

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);
}

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

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

4

1 回答 1

8

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

foo = {}

foo['x'] = 1   // "add"
'x' in foo     // "contains"

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

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

add = function(ary, obj) {
    if (!contains(ary, obj))
        ary.push(obj)
}
于 2012-06-17T09:17:01.193 回答