Quick actions

cmd+k|ctrl+k

Navigation

Languages

hash_imp

Snippet info

Language

JavaScript

Visibility

public

Author

rovanova

Created

2020-03-23T14:20:21Z

Updated

2020-03-26T18:23:40Z

// Forgot to handle collision case
class HashTable {
  constructor(size){
    this.data = new Array(size);
  }
  
  set(k,v) {
      let address = this._hash(k);
      if(!this.data[address]){
          this.data[address] = [];
          //Also forgot to push and directly assigned [k,v]
      }
      this.data[address].push([k,v]);
      
      console.log(this.data);
  }
  
  get(k){
      let address = this._hash(k);
      console.log(this.data[address][1]);
  }
  _hash(key) {
    let hash = 0;
    for (let i =0; i < key.length; i++){
        hash = (hash + key.charCodeAt(i) * i) % this.data.length
    }
    return hash;
  }
}

const myHashTable = new HashTable(50);
myHashTable.set('grapes', 10000)
myHashTable.get('grapes')
myHashTable.set('apples', 9)
myHashTable.get('apples')
INFO