Quick actions

cmd+k|ctrl+k

Navigation

Languages

Hash Table

Snippet info

Language

JavaScript

Visibility

public

Author

jameeulla3

Created

2024-08-20T04:31:59.916151Z

Updated

2024-08-20T04:44:22.790164Z

class Hash{
    constructor(size){
        this.data = new Array(size);
    }
    _hash(key)
    {
        let hash = 0; 
        for(let i=0;i<key.length;i++)
        {
            hash = (hash+key.charCodeAt(i)*i)%this.data.length;
        }
        return hash; 
    }
    set(key,value)
    {
        let index = this._hash(key);
        if(!this.data[index])
        this.data[index] = [];
       
        this.data[index].push([key,value]);
    }
    get(key)
    {
        let index = this._hash(key);
        let currentBucket = this.data[index];
        if(currentBucket.length)
        {
            for(let i=0;i<currentBucket.length;i++)
            {
                if(currentBucket[i][0]==key)
                return currentBucket[i][1]
            }
        }
        return undefined; 
    }
    keys(){
        let keysArray=[];
        for(let i=0;i<this.data.length;i++)
        {
            for(let j=0;j<this.data[i].length;j++)
            keysArray.push(this.data[i][j][0])
        }
        return keysArray;
    }
}
let obj = new Hash(); 
obj.set('grapes',10000);
obj.set('oranges',4)
obj.set('apples',20000);
console.log(obj.get('apples'))
console.log(obj.keys())
INFO