Bird
Raised Fist0
DSA Javascriptprogramming~20 mins

String Traversal and Character Access in DSA Javascript - Practice Problems & Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
String Traversal Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of character access in a string
What is the output of the following JavaScript code?
DSA Javascript
const str = "hello";
console.log(str[1]);
Aundefined
B"h"
C"l"
D"e"
Attempts:
2 left
💡 Hint
Remember that string indexing starts at 0.
❓ Predict Output
intermediate
2:00remaining
Output of string traversal with for loop
What will be printed by this code?
DSA Javascript
const s = "abc";
let result = "";
for(let i = 0; i < s.length; i++) {
  result += s[i] + "-";
}
console.log(result);
A"a-b-c-"
B"abc-"
C"a-b-c"
D"a-b-c-d-"
Attempts:
2 left
💡 Hint
Check how the loop appends characters and dashes.
🧠 Conceptual
advanced
2:00remaining
Understanding string immutability in JavaScript
Which statement about strings in JavaScript is true?
AStrings are mutable only if declared with let.
BStrings are mutable; you can change characters directly by index.
CStrings are immutable; you cannot change characters directly by index.
DStrings are mutable only if declared with var.
Attempts:
2 left
💡 Hint
Try to assign a new character to a string index and see what happens.
❓ Predict Output
advanced
2:00remaining
Output of accessing out-of-range index in string
What does the following code print?
DSA Javascript
const text = "data";
console.log(text[10]);
A"a"
Bundefined
CThrows a TypeError
D"" (empty string)
Attempts:
2 left
💡 Hint
What happens when you access an index beyond string length?
❓ Predict Output
expert
3:00remaining
Output of nested loops traversing a string
What is the output of this code?
DSA Javascript
const s = "ab";
let output = "";
for(let i = 0; i < s.length; i++) {
  for(let j = 0; j <= i; j++) {
    output += s[j];
  }
  output += ",";
}
console.log(output);
A"a,ab,"
B"a,b,"
C"a,ba,"
D"ab,ab,"
Attempts:
2 left
💡 Hint
Trace the inner loop for each outer loop iteration.

Practice

(1/5)
1. What does the expression str[2] return when str = "hello"?
easy
A. The first character of the string, which is 'h'
B. The third character of the string, which is 'l'
C. The length of the string, which is 5
D. An error because strings cannot be accessed by index

Solution

  1. Step 1: Understand zero-based indexing in strings

    Strings in JavaScript start counting characters from index 0, so index 2 is the third character.
  2. Step 2: Identify the character at index 2 in "hello"

    The characters are: h(0), e(1), l(2), l(3), o(4). So index 2 is 'l'.
  3. Final Answer:

    The third character of the string, which is 'l' -> Option B
  4. Quick Check:

    str[2] = 'l' [OK]
Hint: Remember string indexes start at 0, so 2 means third character [OK]
Common Mistakes:
  • Thinking index 2 is the second character
  • Confusing string length with character access
  • Believing strings can't be indexed like arrays
2. Which of the following is the correct syntax to loop through each character of a string text in JavaScript?
easy
A. for (let i = 0; i < text.length; i++) { console.log(text[i]); }
B. for (let char of text) { console.log(text[char]); }
C. for (let i = 1; i <= text.length; i++) { console.log(text[i]); }
D. for (let i = 0; i < text.length; i++) { console.log(text.charAt(i+1)); }

Solution

  1. Step 1: Check the loop range and indexing

    The loop should start at 0 and go up to less than text.length to cover all characters.
  2. Step 2: Verify character access inside the loop

    Accessing characters by text[i] is correct. for (let i = 0; i < text.length; i++) { console.log(text[i]); } uses this correctly.
  3. Final Answer:

    for (let i = 0; i < text.length; i++) { console.log(text[i]); } -> Option A
  4. Quick Check:

    Loop from 0 to length-1 and access text[i] [OK]
Hint: Loop from 0 to length-1 and use text[i] to access chars [OK]
Common Mistakes:
  • Starting loop at 1 instead of 0
  • Using text[char] when char is a character, not index
  • Accessing index i+1 causing off-by-one errors
3. What will be the output of the following code?
const s = "world";
let result = "";
for (let i = 0; i < s.length; i++) {
  if (i % 2 === 0) {
    result += s[i];
  }
}
console.log(result);
medium
A. "wrd"
B. "wolrd"
C. "orld"
D. "wrld"

Solution

  1. Step 1: Understand the loop and condition

    The loop goes from 0 to 4 (length 5). It adds characters at even indexes (0,2,4) to result.
  2. Step 2: Identify characters at even indexes

    Index 0: 'w', 2: 'r', 4: 'd'. So result becomes "wrd".
  3. Final Answer:

    "wrd" -> Option A
  4. Quick Check:

    Characters at even indexes = "wrd" [OK]
Hint: Pick characters where index % 2 is zero [OK]
Common Mistakes:
  • Including characters at odd indexes
  • Confusing index positions with characters
  • Appending characters incorrectly
4. The following code is intended to print each character of word on a new line, but it prints an extra undefined. What is the problem?
const word = "test";
for (let i = 0; i <= word.length; i++) {
  console.log(word[i]);
}
medium
A. Strings cannot be accessed by index in JavaScript
B. console.log cannot print string characters
C. The variable i is not declared
D. The loop condition should be i < word.length instead of <=

Solution

  1. Step 1: Analyze the loop condition

    The loop runs from i = 0 to i = word.length (which is 4). Index 4 is out of bounds for string indices 0-3.
  2. Step 2: Identify the fix

    Change the condition to i < word.length to avoid accessing undefined index.
  3. Final Answer:

    The loop condition should be i < word.length instead of <= -> Option D
  4. Quick Check:

    Loop must stop before length to avoid undefined index [OK]
Hint: Use i < length not <= to avoid out-of-bounds [OK]
Common Mistakes:
  • Using <= instead of < in loop condition
  • Thinking strings can't be indexed
  • Ignoring off-by-one errors
5. Given a string inputStr, which code snippet correctly reverses the string by traversing it from the end to the start?
hard
A. let reversed = ''; for (let i = inputStr.length; i > 0; i--) { reversed += inputStr[i]; }
B. let reversed = ''; for (let i = 0; i < inputStr.length; i++) { reversed += inputStr[inputStr.length - i]; }
C. let reversed = ''; for (let i = inputStr.length - 1; i >= 0; i--) { reversed += inputStr[i]; }
D. let reversed = ''; for (let i = inputStr.length - 1; i > 0; i--) { reversed += inputStr[i]; }

Solution

  1. Step 1: Understand string indexing and loop bounds

    String indices go from 0 to length-1. To reverse, start at length-1 down to 0 inclusive.
  2. Step 2: Check each option's loop and indexing

    let reversed = ''; for (let i = inputStr.length - 1; i >= 0; i--) { reversed += inputStr[i]; } loops from length-1 to 0 inclusive and appends characters correctly. Others have off-by-one errors or wrong indices.
  3. Final Answer:

    let reversed = ''; for (let i = inputStr.length - 1; i >= 0; i--) { reversed += inputStr[i]; } -> Option C
  4. Quick Check:

    Loop backward from last index to 0 and append chars [OK]
Hint: Loop backward from length-1 to 0 and append characters [OK]
Common Mistakes:
  • Using wrong loop bounds causing missing first/last char
  • Accessing index equal to length (out of bounds)
  • Stopping loop before reaching index 0
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