4

I'm using an array in my object prototype which basically has add, remove, search functions attached to it.

Something like this

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

And a sample Array in my case would list of integers. [1, 2, 3, 4]

But later I learnt that this is very costly and can be cost saving if I use hash. Can someone explain use of hash with the above example.

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 に答える