Data Structures: Create a Hash Table
This commit is contained in:
		
							parent
							
								
									a08d964b1a
								
							
						
					
					
						commit
						05f2708e42
					
				
							
								
								
									
										50
									
								
								Data Structures/hashTable.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								Data Structures/hashTable.js
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,50 @@
 | 
			
		||||
// https://www.freecodecamp.org/learn/coding-interview-prep/data-structures/create-a-hash-table
 | 
			
		||||
 | 
			
		||||
var called = 0;
 | 
			
		||||
var hash = (string) => {
 | 
			
		||||
  called++;
 | 
			
		||||
  var hashed = 0;
 | 
			
		||||
  for (var i = 0; i < string.length; i++) {
 | 
			
		||||
    hashed += string.charCodeAt(i);
 | 
			
		||||
  }
 | 
			
		||||
  return hashed;
 | 
			
		||||
};
 | 
			
		||||
var HashTable = function () {
 | 
			
		||||
  this.collection = {};
 | 
			
		||||
  // Only change code below this line
 | 
			
		||||
  this.add = (k, v) => {
 | 
			
		||||
    const keyHash = hash(k);
 | 
			
		||||
    if (this.collection[keyHash] === undefined) {
 | 
			
		||||
      this.collection[keyHash] = [[k, v]];
 | 
			
		||||
    } else {
 | 
			
		||||
      this.collection[keyHash].push([k, v]);
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  this.remove = (k) => {
 | 
			
		||||
    const keyHash = hash(k);
 | 
			
		||||
    if (this.collection[keyHash] === undefined) {
 | 
			
		||||
      return;
 | 
			
		||||
    }
 | 
			
		||||
    this.collection[keyHash] = this.collection[keyHash].filter(
 | 
			
		||||
      ([key, value]) => key !== k
 | 
			
		||||
    );
 | 
			
		||||
    if (this.collection[keyHash].length === 0) {
 | 
			
		||||
      delete this.collection[keyHash];
 | 
			
		||||
    }
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  this.lookup = (k) => {
 | 
			
		||||
    const keyHash = hash(k);
 | 
			
		||||
    if (this.collection[keyHash] === undefined) {
 | 
			
		||||
      return null;
 | 
			
		||||
    }
 | 
			
		||||
    for (let [key, value] of this.collection[keyHash]) {
 | 
			
		||||
      if (key === k) {
 | 
			
		||||
        return value;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return null;
 | 
			
		||||
  };
 | 
			
		||||
  // Only change code above this line
 | 
			
		||||
};
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user