What is a Hash in javascript? How can i use a hash for an array?

12,776

The word "hash" has many meanings, but in this case it probably refers to generic javascript Objects, which are "hashtables" internally. Objects have "add" and "contains" functionality built-in:

foo = {}

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

Do note, however, that keys are always converted to strings, therefore if you want keys of other types (e.g. generic objects), you'll have to use custom functions, for example:

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

add = function(ary, obj) {
    if (!contains(ary, obj))
        ary.push(obj)
}
Share:
12,776
RaviTeja
Author by

RaviTeja

Updated on June 26, 2022

Comments

  • RaviTeja
    RaviTeja about 2 years

    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.

  • Jon Onstott
    Jon Onstott about 11 years
    By "there's no way to store an object in a hashtable" you mean "there's no way to store an object as a key in a hashtable"?