Bird
Raised Fist0
DSA Javascriptprogramming~10 mins

Substring Search Patterns 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 check if the pattern exists in the text using includes method.

DSA Javascript
const text = 'hello world';
const pattern = 'world';
const found = text.[1](pattern);
console.log(found);
Drag options to blanks, or click blank then click option'
Amatch
BindexOf
Csearch
Dincludes
Attempts:
3 left
💡 Hint
Common Mistakes
Using indexOf returns position, not boolean.
Using search returns index or -1, not boolean.
2fill in blank
medium

Complete the code to find the first index of the pattern in the text.

DSA Javascript
const text = 'abracadabra';
const pattern = 'cad';
const index = text.[1](pattern);
console.log(index);
Drag options to blanks, or click blank then click option'
AindexOf
Bmatch
Csearch
Dincludes
Attempts:
3 left
💡 Hint
Common Mistakes
Using includes returns boolean, not index.
Using match returns array or null, not index.
3fill in blank
hard

Fix the error in the code to correctly find all occurrences of the pattern using RegExp.

DSA Javascript
const text = 'banana bandana';
const pattern = /ana/g;
const matches = text.[1](pattern);
console.log(matches);
Drag options to blanks, or click blank then click option'
Amatch
Bsearch
CmatchAll
DindexOf
Attempts:
3 left
💡 Hint
Common Mistakes
Using search returns only first index.
Using matchAll returns an iterator, not array.
4fill in blank
hard

Fill both blanks to extract all starting indices of the pattern in the text.

DSA Javascript
const text = 'testtesttest';
const pattern = /test/g;
const indices = [];
let match;
while ((match = pattern.[1](text)) !== null) {
  indices.push(match.[2]);
}
console.log(indices);
Drag options to blanks, or click blank then click option'
Aexec
Bindex
ClastIndex
Dsearch
Attempts:
3 left
💡 Hint
Common Mistakes
Using search does not return match object.
Using lastIndex is a property of RegExp, not match.
5fill in blank
hard

Fill all three blanks to create a function that returns all indices of a substring in a string.

DSA Javascript
function findAllIndices(text, pattern) {
  const indices = [];
  let pos = 0;
  while (true) {
    const index = text.[1](pattern, pos);
    if (index === [2]) break;
    indices.push(index);
    pos = index + [3];
  }
  return indices;
}

console.log(findAllIndices('abracadabra', 'abra'));
Drag options to blanks, or click blank then click option'
AindexOf
B-1
Cpattern.length
Dincludes
Attempts:
3 left
💡 Hint
Common Mistakes
Using includes returns boolean, not index.
Not advancing pos causes infinite loop.

Practice

(1/5)
1. What does the indexOf method do when used on a string in JavaScript?
easy
A. Converts the string to uppercase
B. Replaces a substring with another string
C. Splits the string into an array of substrings
D. Finds the position of the first occurrence of a substring

Solution

  1. Step 1: Understand the purpose of indexOf

    The indexOf method searches a string for a specified substring and returns the position of its first occurrence.
  2. Step 2: Confirm behavior on strings

    If the substring is found, it returns the zero-based index; if not found, it returns -1.
  3. Final Answer:

    Finds the position of the first occurrence of a substring -> Option D
  4. Quick Check:

    indexOf = position of substring [OK]
Hint: Remember: indexOf returns position or -1 if not found [OK]
Common Mistakes:
  • Confusing indexOf with replace method
  • Thinking indexOf splits the string
  • Assuming indexOf changes the string case
2. Which of the following is the correct syntax to check if the substring 'cat' exists in the string text using includes method?
easy
A. text.include('cat')
B. includes(text, 'cat')
C. text.includes('cat')
D. text.contains('cat')

Solution

  1. Step 1: Recall the correct method name

    The correct method to check substring presence is includes, called on the string object.
  2. Step 2: Verify syntax

    The syntax is string.includes(substring), so text.includes('cat') is correct.
  3. Final Answer:

    text.includes('cat') -> Option C
  4. Quick Check:

    Correct method call syntax = text.includes('cat') [OK]
Hint: Use string.includes(substring) to check presence [OK]
Common Mistakes:
  • Using wrong method name like include or contains
  • Calling includes as a standalone function
  • Passing arguments in wrong order
3. What will be the output of the following code?
const text = 'hello world';
const pos = text.indexOf('o');
console.log(pos);
medium
A. 4
B. 5
C. -1
D. 6

Solution

  1. Step 1: Identify the string and substring

    The string is 'hello world' and the substring searched is 'o'.
  2. Step 2: Find the first occurrence of 'o'

    Counting from zero: h(0) e(1) l(2) l(3) o(4) (space 5) w(6) o(7). The first 'o' is at index 4.
  3. Step 3: Verify the output

    The code uses indexOf('o') which returns the first occurrence index, which is 4.
  4. Final Answer:

    4 -> Option A
  5. Quick Check:

    First 'o' index = 4 [OK]
Hint: Count string index from zero to find first substring position [OK]
Common Mistakes:
  • Counting index starting from 1 instead of 0
  • Confusing second 'o' position with first
  • Assuming indexOf returns -1 if substring exists
4. The following code is intended to check if the substring 'test' exists in str. What is the error?
const str = 'this is a test';
if (str.indexOf == 'test') {
  console.log('Found');
} else {
  console.log('Not Found');
}
medium
A. The variable str is not declared properly
B. indexOf is used without parentheses, so it compares function to string
C. The if condition should use === instead of ==
D. The substring 'test' is misspelled

Solution

  1. Step 1: Analyze the use of indexOf

    The code uses str.indexOf without parentheses, so it refers to the function itself, not the result of calling it.
  2. Step 2: Understand the comparison

    Comparing a function to a string ('test') is always false, so the condition is incorrect.
  3. Final Answer:

    indexOf is used without parentheses, so it compares function to string -> Option B
  4. Quick Check:

    Missing parentheses on indexOf causes error [OK]
Hint: Always call indexOf with parentheses and substring argument [OK]
Common Mistakes:
  • Forgetting parentheses on indexOf
  • Using wrong comparison operator
  • Assuming indexOf returns boolean directly
5. You want to find all starting positions of the substring 'ana' in the string 'banana'. Which approach correctly finds all positions?
hard
A. Use a loop with indexOf and update the start position after each find
B. Use includes repeatedly until it returns false
C. Use lastIndexOf to find all positions from the end
D. Use replace to remove substring and count occurrences

Solution

  1. Step 1: Understand the problem of multiple occurrences

    To find all positions, you must repeatedly search starting after the last found position.
  2. Step 2: Use a loop with indexOf and update start

    Use indexOf('ana', start) in a loop, updating start to position + 1 each time until no more found.
  3. Final Answer:

    Use a loop with indexOf and update the start position after each find -> Option A
  4. Quick Check:

    Loop + indexOf with updated start = all positions [OK]
Hint: Loop with indexOf(start) to find all substring positions [OK]
Common Mistakes:
  • Using includes which returns only true/false
  • Using lastIndexOf which finds only last occurrence
  • Using replace which changes string and loses positions
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