Bird
Raised Fist0
DSA Javascriptprogramming~10 mins

String Traversal and Character Access in DSA Javascript - Interactive Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to access the first character of the string.

DSA Javascript
const str = "hello";
const firstChar = str[1];
console.log(firstChar);
Drag options to blanks, or click blank then click option'
A.length
B.charAt(1)
C[1]
D[0]
Attempts:
3 left
💡 Hint
Common Mistakes
Using index 1 instead of 0.
Using .length property instead of accessing character.
2fill in blank
medium

Complete the code to loop through each character of the string using a for loop.

DSA Javascript
const word = "code";
for (let i = 0; i [1] word.length; i++) {
  console.log(word[i]);
}
Drag options to blanks, or click blank then click option'
A<=
B<
C>=
D>
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<=' causes index out of range error.
Using '>' or '>=' causes the loop to never run.
3fill in blank
hard

Fix the error in the code to correctly get the last character of the string.

DSA Javascript
const text = "example";
const lastChar = text.charAt(text.length [1] 1);
console.log(lastChar);
Drag options to blanks, or click blank then click option'
A-
B+
C*
D/
Attempts:
3 left
💡 Hint
Common Mistakes
Using '+' causes index out of range.
Using '*' or '/' are invalid for index calculation.
4fill in blank
hard

Fill both blanks to create a loop that prints characters only if they are vowels.

DSA Javascript
const phrase = "hello world";
for (let i = 0; i [1] phrase.length; i++) {
  const ch = phrase[i];
  if ("aeiou".includes(ch) [2] true) {
    console.log(ch);
  }
}
Drag options to blanks, or click blank then click option'
A<
B===
C==
D!==
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>=' or '>' in loop condition causes errors.
Using '==' instead of '===' can cause unexpected behavior.
5fill in blank
hard

Fill all three blanks to create an object mapping each character to its uppercase version if it is a letter.

DSA Javascript
const input = "abc123";
const result = {};
for (let i = 0; i [1] input.length; i++) {
  const ch = input[i];
  if (ch [2] "a" && ch [3] "z") {
    result[ch] = ch.toUpperCase();
  }
}
console.log(result);
Drag options to blanks, or click blank then click option'
A<
B>=
C<=
D==
Attempts:
3 left
💡 Hint
Common Mistakes
Using '==' instead of comparison operators.
Using '>=' and '<=' in wrong order.

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