📖 Scenario: Imagine you are organizing a small library. You want to quickly find books by their titles. To do this, you decide to use a simple hash table where each book title is linked to its shelf number.
🎯 Goal: You will create a hash table using a JavaScript object, write a simple hash function to convert book titles into shelf numbers, and then use this function to store and retrieve shelf numbers for given book titles.
📋 What You'll Learn
Create a JavaScript object called library to act as the hash table.
Create a hash function called hashFunction that takes a string and returns a number.
Use the hash function to assign shelf numbers to book titles in the library object.
Print the shelf number for a specific book title using the hash function.
💡 Why This Matters
🌍 Real World
Hash tables are used in many applications like databases, caches, and indexing systems to quickly find data using keys.
💼 Career
Understanding hash tables and hash functions is essential for software developers, especially when working with data storage, retrieval, and optimization.
Progress0 / 4 steps
1
Create the hash table object
Create a JavaScript object called library that will store book titles as keys and shelf numbers as values.
DSA Javascript
Hint
Use const library = {} to create an empty object.
2
Create a simple hash function
Create a function called hashFunction that takes a string key and returns a number. Use the sum of the character codes of the string modulo 10 as the hash value.
DSA Javascript
Hint
Loop through each character in key, add its char code to hash, then return hash % 10.
3
Store book titles with shelf numbers using the hash function
Use the hashFunction to assign shelf numbers to these book titles in the library object: 'Harry Potter', 'The Hobbit', and '1984'. Use the hash value as the shelf number.
DSA Javascript
Hint
Use library['Book Title'] = hashFunction('Book Title') for each book.
4
Print the shelf number for 'The Hobbit'
Print the shelf number for the book title 'The Hobbit' from the library object.
DSA Javascript
Hint
Use console.log(library['The Hobbit']) to print the shelf number.
Practice
(1/5)
1. What is the main purpose of a hash function in a hash table?
easy
A. To convert a key into an index for storing data
B. To sort the keys in alphabetical order
C. To encrypt the data stored in the table
D. To count the number of elements in the table
Solution
Step 1: Understand the role of a hash function
A hash function takes a key and converts it into a number that can be used as an index in the hash table.
Step 2: Identify the correct purpose
Sorting keys or encrypting data is not the job of a hash function; it only maps keys to indexes.
Final Answer:
To convert a key into an index for storing data -> Option A
Quick Check:
Hash function = key to index [OK]
Hint: Hash functions map keys to indexes, not sort or encrypt [OK]
Common Mistakes:
Thinking hash functions sort keys
Confusing hash functions with encryption
Believing hash functions count elements
2. Which of the following is the correct way to create an empty hash table (object) in JavaScript?
easy
A. const table = [];
B. const table = {};
C. const table = new Map();
D. const table = new HashTable();
Solution
Step 1: Recall JavaScript object syntax
In JavaScript, an empty object is created using curly braces {} which can act as a hash table.
Step 2: Evaluate options
const table = []; creates an array, not a hash table. const table = new Map(); creates a Map, which is a different structure. const table = new HashTable(); is invalid as HashTable is not a built-in class.
Final Answer:
const table = {}; -> Option B
Quick Check:
Empty hash table = {} [OK]
Hint: Use curly braces {} to create an empty object hash table [OK]
B. Cannot use numbers as keys in JavaScript objects
C. Accessing table['cat'] is incorrect; should use table[hash('cat')]
D. Hash function should return a string, not a number
Solution
Step 1: Understand how keys are stored and accessed
The hash function returns a number used as a key in the table object.
Step 2: Check how the table is accessed
The code tries to access table['cat'], but the key stored is a number from hash('cat'), so it should access table[hash('cat')].
Final Answer:
Accessing table['cat'] is incorrect; should use table[hash('cat')] -> Option C
Quick Check:
Access key must match stored key type [OK]
Hint: Access hash table with hashed key, not original key [OK]
Common Mistakes:
Accessing with original key instead of hashed key
Thinking keys must be strings only
Assuming hash function causes error due to key.length
5. Given the hash function below, what is the best way to handle collisions when two keys produce the same hash?
function simpleHash(key) {
let sum = 0;
for (let char of key) {
sum += char.charCodeAt(0);
}
return sum % 5;
}
Choose the best collision handling method.
hard
A. Increase the hash size to avoid collisions
B. Overwrite the existing value with the new one
C. Ignore the new key and keep the old value
D. Use chaining by storing multiple values in a list at the same index
Solution
Step 1: Understand collision in hash tables
When two keys produce the same hash index, a collision occurs and must be handled to store both values.
Step 2: Evaluate collision handling methods
Overwriting loses data, ignoring new keys is incorrect, increasing hash size alone doesn't solve collisions. Chaining stores multiple values in a list at the same index, preserving all data.
Final Answer:
Use chaining by storing multiple values in a list at the same index -> Option D
Quick Check:
Chaining handles collisions by lists [OK]
Hint: Use lists (chaining) to store multiple values at one index [OK]
Common Mistakes:
Overwriting values causing data loss
Ignoring new keys on collision
Thinking increasing hash size removes all collisions
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.