📖 Scenario: Imagine you run a small library. You want to keep track of which book belongs to which shelf. You have many books, and you want to find any book quickly without searching every shelf.
🎯 Goal: You will create a simple way to store book names and their shelf numbers. Then, you will look up a book's shelf quickly using a hash map concept.
📋 What You'll Learn
Create a JavaScript object called library with exact book-shelf pairs
Create a variable called bookToFind with the exact book name to search
Use the library object to find the shelf number for bookToFind
Print the shelf number for the book
💡 Why This Matters
🌍 Real World
Hash maps are used in many apps to find information quickly, like looking up phone numbers, usernames, or product prices.
💼 Career
Understanding hash maps helps in software development jobs where fast data access is important, such as building search engines, databases, or caching systems.
Progress0 / 4 steps
1
DATA SETUP: Create the library object
Create a JavaScript object called library with these exact entries: 'The Hobbit': 5, '1984': 3, 'Hamlet': 7
DSA Javascript
Hint
Use curly braces {} to create an object. Put book names as keys and shelf numbers as values separated by colons.
2
CONFIGURATION: Choose the book to find
Create a variable called bookToFind and set it to the string '1984'
DSA Javascript
Hint
Use const bookToFind = '1984'; to store the book name you want to find.
3
CORE LOGIC: Find the shelf number using the hash map
Create a variable called shelfNumber and set it to the value in library for the key bookToFind
DSA Javascript
Hint
Use bracket notation library[bookToFind] to get the shelf number for the book.
4
OUTPUT: Print the shelf number
Write console.log(shelfNumber); to print the shelf number of the book
DSA Javascript
Hint
Use console.log(shelfNumber); to show the shelf number in the console.
Practice
(1/5)
1. Why do we use a hash map in programming? hashMap = {}
easy
A. To store key-value pairs for fast data lookup
B. To store data in a sorted order automatically
C. To perform mathematical calculations faster
D. To create a list of items without duplicates
Solution
Step 1: Understand the purpose of a hash map
A hash map stores data as key-value pairs, allowing quick access to values using keys.
Step 2: Compare with other data structures
Unlike lists or arrays, hash maps provide faster lookup by key, not by position or order.
Final Answer:
To store key-value pairs for fast data lookup -> Option A
Quick Check:
Hash map = fast key-value lookup [OK]
Hint: Hash maps store data by keys for quick access [OK]
Common Mistakes:
Thinking hash maps sort data automatically
Confusing hash maps with arrays or lists
Assuming hash maps are for math calculations
2. Which of the following is the correct way to create an empty hash map (object) in JavaScript?
easy
A. const map = []
B. const map = {}
C. const map = () => {}
D. const map = new Map[]
Solution
Step 1: Recall JavaScript syntax for objects
In JavaScript, curly braces {} create an empty object, which can be used as a hash map.
Step 2: Check other options
Square brackets [] create arrays, () => {} is a function, and new Map[] is invalid syntax.
Final Answer:
const map = {} -> Option B
Quick Check:
Empty object = {} [OK]
Hint: Use curly braces {} to create empty hash maps in JavaScript [OK]
map.apple = 10 correctly assigns value 10 to key 'apple'.
Step 2: Check key access
console.log(map['applee']) tries to access key 'applee' which was never assigned, so it returns undefined.
Final Answer:
Accessing a key that does not exist -> Option D
Quick Check:
Wrong key access = undefined [OK]
Hint: Check spelling of keys when accessing hash map values [OK]
Common Mistakes:
Thinking dot notation is wrong here
Expecting error on accessing missing key
Assuming empty object cannot store values
5. You want to count how many times each word appears in an array using a hash map. Which approach correctly solves this problem?
const words = ['cat', 'dog', 'cat', 'bird'];
const counts = {};
// Fill counts here
console.log(counts);
hard
A. for (const w of words) { counts[w] = 1; }
B. for (const w of words) { counts[w] = counts[w] + 1; }
C. for (const w of words) { counts[w] = (counts[w] || 0) + 1; }
D. for (const w of words) { counts[w] += 1; }
Solution
Step 1: Understand counting logic
We need to add 1 to the count for each word. If the word is new, start from 0.
Step 2: Analyze each option
for (const w of words) { counts[w] = 1; } sets count to 1 always, ignoring repeats. for (const w of words) { counts[w] = counts[w] + 1; } tries to add 1 but counts[w] is undefined initially causing NaN. for (const w of words) { counts[w] = (counts[w] || 0) + 1; } uses (counts[w] || 0) + 1 to handle undefined keys correctly. for (const w of words) { counts[w] += 1; } tries to add 1 without initialization, causing NaN.
Final Answer:
for (const w of words) { counts[w] = (counts[w] || 0) + 1; } -> Option C
Quick Check:
Initialize with 0 or use || 0 before adding [OK]
Hint: Use (counts[key] || 0) + 1 to count safely [OK]
Common Mistakes:
Not initializing counts before adding
Overwriting counts instead of incrementing
Assuming counts[w] is always defined
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.