Bird
Raised Fist0
DSA Typescriptprogramming~20 mins

Array Traversal Patterns in DSA Typescript - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Array Traversal Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of nested loop traversal
What is the output of the following TypeScript code that traverses a 2D array?
DSA Typescript
const matrix = [[1, 2], [3, 4]];
let result = '';
for (let i = 0; i < matrix.length; i++) {
  for (let j = 0; j < matrix[i].length; j++) {
    result += matrix[i][j] + '-';
  }
}
console.log(result);
A"1-2-3-4-"
B"1-3-2-4-"
C"2-1-4-3-"
D"1-2-4-3-"
Attempts:
2 left
💡 Hint
Think about how the outer and inner loops iterate through rows and columns.
❓ Predict Output
intermediate
2:00remaining
Output of reverse traversal with step
What is the output of this TypeScript code that traverses an array backwards with a step of 2?
DSA Typescript
const arr = [10, 20, 30, 40, 50];
let output = '';
for (let i = arr.length - 1; i >= 0; i -= 2) {
  output += arr[i] + ',';
}
console.log(output);
A"50,30,10,"
B"50,40,30,"
C"50,20,10,"
D"40,20,"
Attempts:
2 left
💡 Hint
Start from the last element and move backwards by 2 steps each time.
🔧 Debug
advanced
2:00remaining
Identify the error in array traversal
This TypeScript code is intended to print all elements of an array but causes an error. What is the error?
DSA Typescript
const nums = [1, 2, 3, 4];
for (let i = 0; i <= nums.length; i++) {
  console.log(nums[i].toString());
}
AType error: cannot use <= in loop condition
BSyntax error: missing semicolon
CNo error, prints all elements correctly
DRuntime error: undefined element access at index 4
Attempts:
2 left
💡 Hint
Check the loop condition and array indices carefully.
🧠 Conceptual
advanced
2:00remaining
Understanding traversal order in zigzag pattern
Given a 2D array, which traversal pattern produces the output: 1 -> 2 -> 4 -> 3 -> 5 -> 6 -> null?
ATraverse columns top to bottom, then next column bottom to top, alternating each column
BTraverse rows left to right, then next row right to left, alternating each row
CTraverse rows strictly left to right for all rows
DTraverse columns strictly top to bottom for all columns
Attempts:
2 left
💡 Hint
Think about zigzag or snake-like traversal.
🚀 Application
expert
2:00remaining
Count unique elements using traversal
What is the output of the following TypeScript code that counts unique elements in an array using traversal?
DSA Typescript
const arr = [1, 2, 2, 3, 4, 4, 4, 5];
const uniqueSet = new Set<number>();
for (const num of arr) {
  uniqueSet.add(num);
}
console.log(uniqueSet.size);
A8
B4
C5
D7
Attempts:
2 left
💡 Hint
Count how many different numbers appear in the array.

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