📖 Scenario: You are helping a librarian find a specific book in a shelf. The shelf is a list of book titles. You will write a program to search for a book title by checking each book one by one until you find it.
🎯 Goal: Build a simple linear search program that looks for a given book title in a list of books and tells if it is found or not.
📋 What You'll Learn
Create an array called books with exact titles: 'The Hobbit', '1984', 'Pride and Prejudice', 'To Kill a Mockingbird', 'The Great Gatsby'
Create a variable called searchTitle with the exact value '1984'
Use a for loop with variable index to go through books
Inside the loop, use an if statement to check if books[index] equals searchTitle
Create a variable called found set to false before the loop and set it to true when the book is found
After the loop, print 'Found' if found is true, otherwise print 'Not Found'
💡 Why This Matters
🌍 Real World
Searching for an item in a list is a common task, like finding a book on a shelf or a contact in a phone.
💼 Career
Understanding linear search helps in many programming jobs where you need to find data without special indexing or sorting.
Progress0 / 4 steps
1
Create the list of books
Create an array called books with these exact titles: 'The Hobbit', '1984', 'Pride and Prejudice', 'To Kill a Mockingbird', 'The Great Gatsby'
DSA Javascript
Hint
Use square brackets [] to create an array and separate titles with commas.
2
Set the book title to search
Create a variable called searchTitle and set it to the string '1984'
DSA Javascript
Hint
Use const to create a variable and assign the exact string.
3
Search for the book using a loop
Create a variable called found and set it to false. Then use a for loop with variable index to go through books. Inside the loop, use an if statement to check if books[index] equals searchTitle. If yes, set found to true and use break to stop the loop.
DSA Javascript
Hint
Remember to initialize found before the loop. Use break to stop once found.
4
Print the search result
After the loop, use console.log to print 'Found' if found is true, otherwise print 'Not Found'
DSA Javascript
Hint
Use an if statement to check found and print the correct message.
Practice
(1/5)
1. What is the main idea behind the Linear Search Algorithm?
easy
A. Check each element one by one until the target is found or list ends
B. Divide the list into halves repeatedly to find the target
C. Sort the list first then search using binary steps
D. Use a hash table to find the target instantly
Solution
Step 1: Understand linear search process
Linear search checks each element in order, from start to end.
Step 2: Compare with other search methods
Binary search divides list, hash uses extra memory, linear is simple sequential check.
Final Answer:
Check each element one by one until the target is found or list ends -> Option A
Quick Check:
Linear search = sequential check [OK]
Hint: Linear search checks items one by one [OK]
Common Mistakes:
Confusing linear search with binary search
Thinking linear search requires sorted list
Assuming linear search uses extra memory
2. Which of the following is the correct syntax to start a linear search loop in JavaScript for an array arr?
easy
A. for (let i = 0; i <= arr.length; i++)
B. for (let i = 0; i < arr.length; i++)
C. for (let i = 1; i < arr.length; i++)
D. for (let i = 1; i <= arr.length; i++)
Solution
Step 1: Understand array indexing in JavaScript
Arrays start at index 0 and go up to length - 1.
Step 2: Choose loop condition to avoid out-of-bound error
Loop must run while i is less than arr.length, not equal or greater.
Final Answer:
for (let i = 0; i < arr.length; i++) -> Option B
Quick Check:
Loop runs from 0 to length-1 [OK]
Hint: Use i < arr.length to avoid index errors [OK]
Common Mistakes:
Using <= instead of < causing out-of-bound errors
Starting loop from 1 instead of 0
Confusing array length with last index
3. What will be the output of the following code?
const arr = [4, 8, 15, 16, 23, 42];
function linearSearch(array, target) {
for (let i = 0; i < array.length; i++) {
if (array[i] === target) {
return i;
}
}
return -1;
}
console.log(linearSearch(arr, 15));
medium
A. 2
B. 3
C. -1
D. 15
Solution
Step 1: Trace the loop to find target 15
Indices: 0=4, 1=8, 2=15. At i=2, array[i] === 15 is true.
Step 2: Return index when target found
Function returns 2 immediately when target matches.
Final Answer:
2 -> Option A
Quick Check:
Index of 15 in array = 2 [OK]
Hint: Return index when target matches during loop [OK]
Common Mistakes:
Returning value instead of index
Returning -1 even if target exists
Off-by-one errors in index
4. Find the error in this linear search function and choose the correct fix:
function linearSearch(arr, target) {
for (let i = 0; i <= arr.length; i++) {
if (arr[i] == target) {
return i;
}
}
return -1;
}
medium
A. Initialize i to 1 instead of 0
B. Change == to === in if condition
C. Change loop condition to i < arr.length
D. Add a break statement after return
Solution
Step 1: Identify loop condition error
Loop runs while i <= arr.length, which causes out-of-bound access at i = arr.length.
Step 2: Fix loop condition to prevent error
Change condition to i < arr.length to stay within valid indices.
Final Answer:
Change loop condition to i < arr.length -> Option C
Quick Check:
Loop must stay within array bounds [OK]
Hint: Use i < arr.length to avoid index errors [OK]
Common Mistakes:
Using <= instead of < in loop condition
Thinking == vs === causes runtime error here
Adding break after return (unnecessary)
5. You want to find the first occurrence of the number 7 in the array [3, 5, 7, 7, 9] using linear search. Which code snippet correctly returns the index of the first 7?
hard
A. for (let i = arr.length - 1; i >= 0; i--) { if (arr[i] === 7) return i; } return -1;
B. for (let i = 0; i < arr.length; i++) { if (arr[i] == 7) return arr[i]; } return -1;
C. for (let i = 1; i <= arr.length; i++) { if (arr[i] === 7) return i; } return -1;
D. for (let i = 0; i < arr.length; i++) { if (arr[i] === 7) return i; } return -1;
Solution
Step 1: Understand requirement to find first occurrence
Start from index 0 and return index when first 7 is found.
Step 2: Analyze each option for correctness
for (let i = 0; i < arr.length; i++) { if (arr[i] === 7) return i; } return -1; loops forward, returns index correctly. for (let i = arr.length - 1; i >= 0; i--) { if (arr[i] === 7) return i; } return -1; loops backward (last occurrence). for (let i = 1; i <= arr.length; i++) { if (arr[i] === 7) return i; } return -1; has wrong loop bounds. for (let i = 0; i < arr.length; i++) { if (arr[i] == 7) return arr[i]; } return -1; returns value, not index.
Final Answer:
for (let i = 0; i < arr.length; i++) { if (arr[i] === 7) return i; } return -1; -> Option D
Quick Check:
Forward loop returns first match index [OK]
Hint: Loop forward and return index on first match [OK]
Common Mistakes:
Looping backward returns last occurrence, not first
Returning value instead of index
Using wrong loop bounds causing errors
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.