📖 Scenario: You are helping a small grocery store analyze their daily sales. They have a list of items sold with their prices. You want to find out which items cost more than a certain amount to decide which products to promote.
🎯 Goal: Build a program that goes through a list of grocery items with prices, checks which items are more expensive than a set price, and then shows those items.
📋 What You'll Learn
Create an array of grocery items with exact names and prices
Create a variable to hold the price threshold
Use a for loop to check each item's price against the threshold
Print the list of items that cost more than the threshold
💡 Why This Matters
🌍 Real World
Stores and businesses often analyze product prices to decide promotions and discounts.
💼 Career
Understanding how to traverse arrays and filter data is essential for software developers working with data processing.
Progress0 / 4 steps
1
Create the grocery items array
Create an array called groceryItems with these exact objects: { name: 'Milk', price: 2 }, { name: 'Bread', price: 1 }, { name: 'Cheese', price: 5 }, { name: 'Apple', price: 3 }, { name: 'Chocolate', price: 4 }
DSA Typescript
Hint
Use square brackets [] to create an array and curly braces {} for each item object.
2
Set the price threshold
Create a variable called priceThreshold and set it to 3
DSA Typescript
Hint
Use const to create a variable that does not change.
3
Find items more expensive than the threshold
Create an empty array called expensiveItems. Use a for loop with variable item to go through groceryItems. Inside the loop, if item.price is greater than priceThreshold, add item.name to expensiveItems using push()
DSA Typescript
Hint
Remember to create an empty array first, then use a for-of loop to check each item.
4
Print the expensive items
Use console.log to print the expensiveItems array
DSA Typescript
Hint
Use console.log(expensiveItems) to show the final list.
Practice
(1/5)
1. What does the following TypeScript code do? for (let i = 0; i < arr.length; i++) { console.log(arr[i]); }
easy
A. Prints each element of the array from start to end
B. Prints the array elements in reverse order
C. Prints only the first element of the array
D. Prints the length of the array
Solution
Step 1: Understand the loop range
The loop starts at 0 and runs while i is less than arr.length, so it covers all valid indexes.
Step 2: Analyze the console.log statement
Each iteration prints the element at index i, so all elements are printed in order.
Final Answer:
Prints each element of the array from start to end -> Option A
Quick Check:
Standard forward traversal prints all elements [OK]
Hint: For loop from 0 to length prints array forward [OK]
Common Mistakes:
Thinking it prints in reverse order
Assuming it prints only one element
Confusing index with value
2. Which of the following is the correct syntax to traverse an array arr using a for-of loop in TypeScript?
easy
A. for (let i = 0; i < arr.length; i++) { console.log(arr[i]); }
B. for (let item of arr) { console.log(item); }
C. for (let i in arr) { console.log(arr[i]); }
D. for (let i = arr.length; i >= 0; i--) { console.log(arr[i]); }
Solution
Step 1: Identify for-of loop syntax
The for-of loop syntax is: for (let element of array) { ... }
Step 2: Match with options
for (let item of arr) { console.log(item); } matches this syntax and prints each element directly.
Final Answer:
for (let item of arr) { console.log(item); } -> Option B
Quick Check:
for-of loops use 'of' keyword to iterate elements [OK]
Hint: for-of loops use 'of' keyword to get elements directly [OK]
Common Mistakes:
Using for-in to get elements instead of indexes
Confusing for-of with traditional for loop syntax
Using wrong loop conditions
3. What will be the output of the following code?
const arr = [10, 20, 30];
let result = [];
for (let i = arr.length - 1; i >= 0; i--) {
result.push(arr[i]);
}
console.log(result);
medium
A. SyntaxError
B. [10, 20, 30]
C. [undefined, 30, 20]
D. [30, 20, 10]
Solution
Step 1: Understand the loop direction
The loop starts at index 2 (arr.length - 1) and decrements to 0, traversing the array backward.
Step 2: Track elements pushed to result
Elements pushed in order: arr[2] = 30, arr[1] = 20, arr[0] = 10, so result = [30, 20, 10].
Final Answer:
[30, 20, 10] -> Option D
Quick Check:
Reverse traversal collects elements backward [OK]
Hint: Loop from length-1 down to 0 reverses array [OK]
Common Mistakes:
Assuming forward order output
Confusing index bounds causing undefined
Thinking it causes syntax error
4. Identify the error in the following code snippet that attempts to print all elements of arr:
const arr = [1, 2, 3];
for (let i = 0; i <= arr.length; i++) {
console.log(arr[i]);
}
medium
A. The loop condition should be i < arr.length, not i <= arr.length
B. The variable i should start from 1, not 0
C. The array should be traversed using for-of loop only
D. There is no error; code works fine
Solution
Step 1: Check loop condition
The loop runs while i <= arr.length, which means i can be equal to arr.length (3), an invalid index.
Step 2: Understand array indexing
Array indexes go from 0 to arr.length - 1, so accessing arr[3] is undefined and may cause unexpected output.
Final Answer:
The loop condition should be i < arr.length, not i <= arr.length -> Option A
Quick Check:
Array indexes go from 0 to length-1 [OK]
Hint: Loop index must be less than length, not less or equal [OK]
Common Mistakes:
Using <= instead of < in loop condition
Starting index at 1 instead of 0
Thinking for-of is mandatory
5. Given an array arr of numbers, which code snippet correctly creates a new array containing only the even numbers from arr using array traversal?
hard
A. const evens = [];
for (let x of arr) {
if (x % 2 === 0) evens.push(x);
}
B. const evens = arr.filter(x => x % 2 === 0);
C. All of the above
D. const evens = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 === 0) evens.push(arr[i]);
}
Solution
Step 1: Analyze const evens = [];
for (let i = 0; i < arr.length; i++) {
if (arr[i] % 2 === 0) evens.push(arr[i]);
}
Uses a for loop with index to check each element and push even numbers. Correct traversal and filtering.
Step 2: Analyze const evens = arr.filter(x => x % 2 === 0); and C
const evens = arr.filter(x => x % 2 === 0); uses filter method which internally traverses array and filters evens. const evens = [];
for (let x of arr) {
if (x % 2 === 0) evens.push(x);
} uses for-of loop to traverse and filter evens. Both are correct.
Step 3: Combine understanding
All three options correctly traverse and select even numbers.
Final Answer:
All of the above -> Option C
Quick Check:
Multiple traversal patterns can filter arrays correctly [OK]
Hint: Any loop or filter method can select elements by condition [OK]
Common Mistakes:
Assuming only for loop works
Confusing filter syntax
Forgetting to check modulo condition
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.