我在我的对象原型中使用了一个数组,它基本上有添加,删除,附加到它的搜索功能.
像这样的东西
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]
但后来我才知道这是非常昂贵的,如果我使用哈希,可以节省成本.有人可以用上面的例子来解释哈希的使用.
"哈希"这个词有很多含义,但在这种情况下,它可能是指通用的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)
| 归档时间: |
|
| 查看次数: |
10866 次 |
| 最近记录: |