📖 Scenario: Imagine you have a list of daily tasks you want to complete. Sometimes you want to see the tasks in the order you planned (forward), and sometimes you want to review them from the last to the first (backward).
🎯 Goal: You will create an array of tasks and then write code to show the tasks in forward order and backward order.
📋 What You'll Learn
Create an array called tasks with exact string values
Create a variable called count to store the number of tasks
Use a for loop to print tasks forward using console.log
Use a for loop to print tasks backward using console.log
💡 Why This Matters
🌍 Real World
In daily life, we often review lists forward and backward, like checking a to-do list or reviewing steps in reverse order.
💼 Career
Understanding how to traverse data structures forward and backward is important for many programming tasks, such as processing logs, undo features, or navigating menus.
Progress0 / 4 steps
1
Create the tasks array
Create an array called tasks with these exact string values in order: 'Wake up', 'Brush teeth', 'Have breakfast', 'Go to work', 'Read a book'.
DSA Javascript
Hint
Use square brackets [] to create an array and separate each task with commas.
2
Count the number of tasks
Create a variable called count and set it to the length of the tasks array.
DSA Javascript
Hint
Use the .length property of the array to get the number of tasks.
3
Print tasks forward
Use a for loop with variable i starting at 0 and running while i < count. Inside the loop, print tasks[i] using console.log.
DSA Javascript
Hint
Start i at 0 and increase it by 1 each time until it reaches count.
4
Print tasks backward
Use a for loop with variable i starting at count - 1 and running while i >= 0. Inside the loop, print tasks[i] using console.log.
DSA Javascript
Hint
Start i at count - 1 and decrease it by 1 each time until it reaches 0.
Practice
(1/5)
1. What does it mean to traverse a linked list forward?
easy
A. Visiting nodes randomly without order
B. Visiting nodes from the first node to the last node in order
C. Skipping every other node while visiting
D. Visiting nodes from the last node to the first node in reverse order
Solution
Step 1: Understand forward traversal
Forward traversal means starting at the first node (head) and moving to the next node repeatedly until the end.
Step 2: Compare with other options
Backward traversal is the opposite, from last to first. Skipping or random visiting is not traversal.
Final Answer:
Visiting nodes from the first node to the last node in order -> Option B
Quick Check:
Forward traversal = first to last [OK]
Hint: Forward means start to end in order [OK]
Common Mistakes:
Confusing forward with backward traversal
Thinking traversal skips nodes
Assuming traversal is random
2. Which of the following is the correct syntax to traverse an array arr forward in JavaScript?
easy
A. for (let i = 0; i < arr.length; i++) { console.log(arr[i]); }
B. for (let i = arr.length; i >= 0; i--) { console.log(arr[i]); }
C. for (let i = 1; i <= arr.length; i++) { console.log(arr[i]); }
D. for (let i = arr.length - 1; i > 0; i--) { console.log(arr[i]); }
Solution
Step 1: Identify forward traversal syntax
Forward traversal starts at index 0 and goes up to index arr.length - 1, so i from 0 to less than arr.length.
Step 2: Check each option
for (let i = 0; i < arr.length; i++) { console.log(arr[i]); } uses i = 0 to i < arr.length, correct. for (let i = arr.length; i >= 0; i--) { console.log(arr[i]); } and D count backward. for (let i = 1; i <= arr.length; i++) { console.log(arr[i]); } starts at 1 and accesses arr[arr.length], which is undefined.
Final Answer:
for (let i = 0; i < arr.length; i++) { console.log(arr[i]); } -> Option A
Quick Check:
Forward array loop = i from 0 to length-1 [OK]
Hint: Start index 0, end before length for forward loops [OK]
Common Mistakes:
Starting loop at 1 instead of 0
Using <= instead of < in loop condition
Looping backward for forward traversal
3. What will be the output of the following code?
const arr = [10, 20, 30];
for (let i = arr.length - 1; i >= 0; i--) {
console.log(arr[i]);
}
medium
A. 10 20 30
B. undefined undefined undefined
C. 30 20 10
D. SyntaxError
Solution
Step 1: Analyze loop indices
The loop starts at i = arr.length - 1 = 2, then decrements i until 0, so indices 2, 1, 0.
Step 2: Print elements in reverse order
arr[2] = 30, arr[1] = 20, arr[0] = 10, so output is 30 20 10.
Final Answer:
30 20 10 -> Option C
Quick Check:
Backward loop prints elements in reverse [OK]
Hint: Loop backward from length-1 to 0 for reverse output [OK]
Common Mistakes:
Confusing forward and backward indices
Expecting output in original order
Off-by-one errors in loop condition
4. Identify the error in the following backward traversal code for an array nums:
for (let i = nums.length; i >= 0; i--) {
console.log(nums[i]);
}
medium
A. No error, code is correct
B. Loop should increment i instead of decrement
C. Loop condition should be i <= nums.length
D. Loop should start at nums.length - 1 and decrement i
Solution
Step 1: Check loop start and direction
Array indices go from 0 to nums.length - 1. Starting at nums.length is out of bounds.
Step 2: Correct loop start and decrement
Loop should start at nums.length - 1 and decrement i to 0 to traverse backward correctly.
Final Answer:
Loop should start at nums.length - 1 and decrement i -> Option D
Quick Check:
Backward loop start = length-1, decrement i [OK]
Hint: Start backward loop at length-1, not length [OK]
Common Mistakes:
Starting loop at length causing undefined access
Incrementing index in backward loop
Wrong loop condition allowing infinite loop
5. Given a doubly linked list, which traversal method allows visiting nodes both forward and backward efficiently?
hard
A. Using next pointers for forward and prev pointers for backward traversal
B. Using only next pointers for both directions
C. Using only prev pointers for both directions
D. Traversing randomly without pointers
Solution
Step 1: Understand doubly linked list structure
Doubly linked lists have two pointers per node: next (forward) and prev (backward).