For loop in Javascript - Time & Space Complexity
We want to understand how the time a for loop takes changes as we increase the number of times it runs.
How does the work grow when the loop runs more times?
Analyze the time complexity of the following code snippet.
for (let i = 0; i < n; i++) {
console.log(i);
}
This code prints numbers from 0 up to n-1, running the loop n times.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The loop runs and prints a number each time.
- How many times: Exactly n times, where n is the input size.
As n grows, the number of times the loop runs grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 prints |
| 100 | 100 prints |
| 1000 | 1000 prints |
Pattern observation: The work grows directly with n; if n doubles, work doubles.
Time Complexity: O(n)
This means the time taken grows in a straight line with the number of loop runs.
[X] Wrong: "The loop runs faster as n gets bigger because computers are fast."
[OK] Correct: Even though computers are fast, the loop still does more work when n is bigger, so it takes more time.
Understanding how loops grow with input size helps you explain your code clearly and shows you know how to think about efficiency.
"What if we added a second nested for loop inside the first? How would the time complexity change?"
Practice
What does a for loop do in JavaScript?
Solution
Step 1: Understand the purpose of a for loop
A for loop is designed to repeat code multiple times based on a condition.Step 2: Compare options with the for loop behavior
Only Repeats a block of code a set number of times correctly describes repeating code multiple times.Final Answer:
Repeats a block of code a set number of times -> Option CQuick Check:
For loop = repeat code [OK]
- Thinking for loop stops program
- Confusing variable creation with looping
- Assuming for loop runs only once
Which of the following is the correct syntax for a basic for loop in JavaScript?
for (___; ___; ___) {
// code
}Solution
Step 1: Recall the for loop syntax
The correct syntax is: for (start; condition; change) { ... }Step 2: Check each option against syntax
for (i = 0; i < 5; i++) matches the correct syntax with initialization, condition, and increment.Final Answer:
for (i = 0; i < 5; i++) -> Option AQuick Check:
Syntax = for (init; cond; change) [OK]
- Missing parentheses around for loop parts
- Wrong order of parts inside for loop
- Using semicolons incorrectly
What will be the output of this code?
let result = '';
for (let i = 1; i <= 3; i++) {
result += i + ' ';
}
console.log(result.trim());Solution
Step 1: Understand the loop iterations
The loop runs with i = 1, 2, 3 because i <= 3.Step 2: Track the string concatenation
Each iteration adds the number and a space to result: "1 ", then "1 2 ", then "1 2 3 ". trim() removes the last space.Final Answer:
"1 2 3" -> Option BQuick Check:
Loop 1 to 3 adds numbers with spaces [OK]
- Ignoring the spaces added
- Forgetting trim() removes trailing space
- Assuming loop includes 4
Find the error in this for loop code:
for (let i = 0; i < 5; i) {
console.log(i);
}Solution
Step 1: Check the loop increment part
The loop has 'i' instead of 'i++' which means i never changes.Step 2: Understand the effect of missing increment
Without increment, the loop runs forever or does not progress, causing an error or infinite loop.Final Answer:
Missing increment operator 'i++' in the loop -> Option DQuick Check:
Increment needed to change loop variable [OK]
- Forgetting to increment loop variable
- Using wrong condition syntax
- Missing braces but allowed in single line
You want to create a for loop that prints only even numbers from 2 to 10 inclusive. Which code snippet does this correctly?
Solution
Step 1: Identify the range and condition for even numbers
We want numbers 2, 4, 6, 8, 10 inclusive.Step 2: Check each option for correctness
for (let i = 2; i <= 10; i += 2) { console.log(i); } increments by 2 starting at 2, printing only even numbers up to 10. for (let i = 0; i <= 10; i++) { if (i % 2 === 0) console.log(i); } starts from 0 and prints 0 which is outside the 2-10 range. for (let i = 2; i < 10; i++) { if (i % 2 === 0) console.log(i); } misses 10 because it uses i < 10. for (let i = 2; i <= 10; i++) { if (i % 2 === 1) console.log(i); } prints odd numbers, which is wrong.Final Answer:
for (let i = 2; i <= 10; i += 2) { console.log(i); } -> Option AQuick Check:
Increment by 2 prints evens directly [OK]
- Using wrong loop condition (i < 10)
- Printing odd numbers by mistake
- Not incrementing properly to skip odds
Ready to prove it?
Pass the test and this pattern moves unknown
