Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

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.

like image 482
RaviTeja Avatar asked Feb 21 '23 03:02

RaviTeja


1 Answers

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)
}
like image 88
georg Avatar answered Apr 27 '23 19:04

georg