Bird
Raised Fist0
DSA Typescriptprogramming~5 mins

Array Traversal Patterns in DSA Typescript - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Array Traversal Patterns
O(n)
Understanding Time Complexity

When we go through each item in an array one by one, we want to know how long it takes as the array grows.

We ask: How does the time to check all items change when the array gets bigger?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


function printAllItems(arr: number[]): void {
  for (let i = 0; i < arr.length; i++) {
    console.log(arr[i]);
  }
}
    

This code goes through each item in the array and prints it once.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Accessing and printing each array element.
  • How many times: Exactly once for each item in the array.
How Execution Grows With Input

As the array gets bigger, the number of steps grows directly with the number of items.

Input Size (n)Approx. Operations
1010 steps
100100 steps
10001000 steps

Pattern observation: Doubling the array size doubles the work needed.

Final Time Complexity

Time Complexity: O(n)

This means the time to finish grows in a straight line with the number of items.

Common Mistake

[X] Wrong: "Since we only have one loop, the time is constant or very fast no matter the size."

[OK] Correct: Even one loop that touches every item means time grows as the list grows, not fixed.

Interview Connect

Understanding how simple loops grow with input size is a key skill that helps you analyze more complex code confidently.

Self-Check

"What if we nested another loop inside to compare every item with every other? How would the time complexity change?"

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

  1. 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.
  2. Step 2: Analyze the console.log statement

    Each iteration prints the element at index i, so all elements are printed in order.
  3. Final Answer:

    Prints each element of the array from start to end -> Option A
  4. 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

  1. Step 1: Identify for-of loop syntax

    The for-of loop syntax is: for (let element of array) { ... }
  2. Step 2: Match with options

    for (let item of arr) { console.log(item); } matches this syntax and prints each element directly.
  3. Final Answer:

    for (let item of arr) { console.log(item); } -> Option B
  4. 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

  1. Step 1: Understand the loop direction

    The loop starts at index 2 (arr.length - 1) and decrements to 0, traversing the array backward.
  2. 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].
  3. Final Answer:

    [30, 20, 10] -> Option D
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    The loop condition should be i < arr.length, not i <= arr.length -> Option A
  4. 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

  1. 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.
  2. 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.
  3. Step 3: Combine understanding

    All three options correctly traverse and select even numbers.
  4. Final Answer:

    All of the above -> Option C
  5. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard