“Hashtable JS” Kode Jawaban

Hashtable JS

// A hash table is data structure that uses a an array and a hashing function to store and lookup data stored in key value pairs.
// It also implements a collision strategy to handle multiple hashes that may produce the same index. 
// In my example I will use seperate chaining to handle hash collisions, which means we can store multiple key value pairs in the same index using a map or an array, or a linked list. I will be using maps. 

class HashTable {
  constructor(size = 0) {
    this.size = size;
    this.hashMap = new Array(size)
    
    for(let i = 0; i < this.size; i++) {
      this.hashMap[i] = new Map();
    }
  }

  // Hash our key and return the outputed idx % our hashtable size
  hash(key) {
    let hash = 0;
    for (let i = 0; i < key.length; i++) {
      hash += key.charCodeAt(i);
    }
    return hash % this.size;
  }

  // Insert key value pair at hashed idx
  insert(key, value) {
    const idx = this.hash(key);
    this.hashMap[idx].set(key, value);
    return;
  }

  // Remove an item at hashed idx
  remove(key) {
    let idx = this.hash(key);
    let removedItem = this.hashMap[idx].get(key);

    if(removedItem) {
      // Remove the item and return it
      this.hashMap[idx].delete(key);
      return console.log('REMOVED: ' + removedItem);
    }
    return null;
  }

  // Retrieve a value at hashed idx
  retrieve(key) {
    let idx = this.hash(key);

    let value = this.hashMap[idx].get(key);
    if(value) {
      return console.log('RETRIEVED: ' + value);
    }
    return null;
  }
}

// Instantiate a new hash table with a size of 10;
const myHashTable = new HashTable(10);

// Let pretends in a game when we reach a certain level, we get a reward. And this hashtable stores the rewards and levels needed.

// Inserting
myHashTable.insert("level-1", 'shortsword');
myHashTable.insert("level-5", 'longsword');
myHashTable.insert("level-9", 'poisen arrows');
// Print out the table
console.log(myHashTable);
// Removing
myHashTable.remove("level-1");
// Print out the table
console.log(myHashTable);
// Retrieving
myHashTable.retrieve("level-5");
myHashTable.retrieve("level-1");
// Print out the table
console.log(myHashTable);
Jarett Sisk

JavaScript Hashtable

//  JavaScript's Object type is a special hash table
// The most common example of a Hash Table in JavaScript is the Object data type, 
// where you can pair the object's property value with a property key.

In the following example, the likes object contain what people like by having their
name "John" as Key and "Playing Football"  as the value.

let likes = {
  John: "Playing Football",
  Jane: "Watching Soap Operas"
}

More details
https://www.freecodecamp.org/news/javascript-hash-table-associative-array-hashing-in-js/
Smiling Starling

Jawaban yang mirip dengan “Hashtable JS”

Pertanyaan yang mirip dengan “Hashtable JS”

Lebih banyak jawaban terkait untuk “Hashtable JS” di JavaScript

Jelajahi jawaban kode populer menurut bahasa

Jelajahi bahasa kode lainnya