我在我的对象原型中使用了一个数组,它基本上有添加,删除,附加到它的搜索功能。
像这样的东西
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]
但后来我了解到这是非常昂贵的,如果我使用哈希,可以节省成本。 有人可以用上面的例子解释哈希的使用。
答案 0 :(得分:8)
“hash”这个词有很多含义,但在这种情况下,它可能是指通用的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)
}