Bird
Raised Fist0
DSA Javascriptprogramming~10 mins

Count Words with Given Prefix 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 a word starts with the given prefix.

DSA Javascript
function startsWith(word, prefix) {
  return word.[1](prefix);
}
Drag options to blanks, or click blank then click option'
Aincludes
BstartsWith
CendsWith
DindexOf
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'includes' which checks anywhere in the word, not just the start.
Using 'endsWith' which checks the end of the word.
2fill in blank
medium

Complete the code to count how many words start with the prefix.

DSA Javascript
function countWords(words, prefix) {
  let count = 0;
  for (const word of words) {
    if (word.[1](prefix)) {
      count++;
    }
  }
  return count;
}
Drag options to blanks, or click blank then click option'
AstartsWith
BindexOf
CendsWith
Dincludes
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'includes' which counts words containing prefix anywhere.
Using 'endsWith' which checks the end of the word.
3fill in blank
hard

Fix the error in the code to correctly count words with the prefix.

DSA Javascript
function countWords(words, prefix) {
  return words.filter(word => word.[1](prefix)).length;
}
Drag options to blanks, or click blank then click option'
AendsWith
Bincludes
CstartsWith
DindexOf
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'includes' which matches anywhere in the word.
Using 'endsWith' which checks the end of the word.
4fill in blank
hard

Fill both blanks to create a function that returns a list of words starting with the prefix.

DSA Javascript
function filterWords(words, prefix) {
  return words.[1](word => word.[2](prefix));
}
Drag options to blanks, or click blank then click option'
Afilter
Bmap
CstartsWith
Dincludes
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'map' instead of 'filter' which changes the array instead of selecting.
Using 'includes' which matches prefix anywhere, not just start.
5fill in blank
hard

Fill all three blanks to create a function that returns the count of words starting with the prefix using reduce.

DSA Javascript
function countWordsReduce(words, prefix) {
  return words.reduce((count, word) => {
    return count + (word.[1](prefix) ? [2] : [3]);
  }, 0);
}
Drag options to blanks, or click blank then click option'
AstartsWith
B1
C0
Dincludes
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'includes' instead of 'startsWith'.
Adding wrong values instead of 1 or 0.

Practice

(1/5)
1. What does the function countWordsWithPrefix(words, prefix) do when given a list of words and a prefix?
easy
A. Counts how many words contain the prefix anywhere
B. Counts the total number of words in the list
C. Counts how many words end with the given prefix
D. Counts how many words start with the given prefix

Solution

  1. Step 1: Understand the function purpose

    The function checks each word to see if it starts with the given prefix.
  2. Step 2: Count matching words

    It counts only those words that begin exactly with the prefix, ignoring others.
  3. Final Answer:

    Counts how many words start with the given prefix -> Option D
  4. Quick Check:

    Starts with prefix = Count [OK]
Hint: Look for words starting exactly with prefix [OK]
Common Mistakes:
  • Counting words containing prefix anywhere
  • Counting words ending with prefix
  • Counting total words instead of filtered ones
2. Which of the following is the correct syntax to check if a string word starts with a prefix prefix in JavaScript?
easy
A. word.beginWith(prefix)
B. word.hasPrefix(prefix)
C. word.startsWith(prefix)
D. word.starts(prefix)

Solution

  1. Step 1: Recall JavaScript string methods

    JavaScript strings have a method called startsWith() to check prefix.
  2. Step 2: Match method name

    Only startsWith() is the correct method; others do not exist.
  3. Final Answer:

    word.startsWith(prefix) -> Option C
  4. Quick Check:

    Correct method name = startsWith [OK]
Hint: Use startsWith() method for prefix check [OK]
Common Mistakes:
  • Using non-existent methods like hasPrefix
  • Using incorrect method names like beginWith
  • Confusing startsWith with other string methods
3. What is the output of the following code?
const words = ['apple', 'app', 'application', 'banana'];
const prefix = 'app';
function countWordsWithPrefix(words, prefix) {
  let count = 0;
  for (const word of words) {
    if (word.startsWith(prefix)) {
      count++;
    }
  }
  return count;
}
console.log(countWordsWithPrefix(words, prefix));
medium
A. 3
B. 2
C. 1
D. 4

Solution

  1. Step 1: Check each word against prefix 'app'

    'apple', 'app', and 'application' all start with 'app'. 'banana' does not.
  2. Step 2: Count matching words

    There are 3 words starting with 'app', so count is 3.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Words starting with 'app' = 3 [OK]
Hint: Count words starting exactly with prefix [OK]
Common Mistakes:
  • Counting words containing prefix anywhere
  • Missing one of the matching words
  • Counting all words regardless of prefix
4. The following code is intended to count words starting with a prefix, but it has a bug. What is the bug?
function countWordsWithPrefix(words, prefix) {
  let count = 0;
  for (let i = 0; i <= words.length; i++) {
    if (words[i].startsWith(prefix)) {
      count++;
    }
  }
  return count;
}
medium
A. startsWith method is used incorrectly
B. Loop goes out of bounds causing an error
C. count variable is not initialized
D. Prefix is not passed as a parameter

Solution

  1. Step 1: Analyze loop condition

    The loop runs with i from 0 to words.length inclusive, but array indices go from 0 to words.length - 1.
  2. Step 2: Identify out of bounds access

    At i = words.length, words[i] is undefined, so calling startsWith causes an error.
  3. Final Answer:

    Loop goes out of bounds causing an error -> Option B
  4. Quick Check:

    Loop index must be less than length [OK]
Hint: Use i < words.length, not <= [OK]
Common Mistakes:
  • Using <= instead of < in loop condition
  • Not checking array bounds before access
  • Assuming startsWith works on undefined
5. Given the array words = ['Test', 'testing', 'Tester', 'tent', 'team'] and prefix 'te', which code snippet correctly counts words starting with the prefix ignoring case sensitivity?
hard
A. words.filter(w => w.toLowerCase().startsWith(prefix.toLowerCase())).length
B. words.filter(w => w.startsWith(prefix)).length
C. words.filter(w => w.includes(prefix)).length
D. words.filter(w => w.endsWith(prefix)).length

Solution

  1. Step 1: Understand case sensitivity issue

    Direct startsWith is case sensitive, so 'Test' and 'test' differ.
  2. Step 2: Use toLowerCase() to normalize

    Convert both word and prefix to lowercase before checking startsWith to ignore case.
  3. Final Answer:

    words.filter(w => w.toLowerCase().startsWith(prefix.toLowerCase())).length -> Option A
  4. Quick Check:

    Normalize case before prefix check [OK]
Hint: Convert both strings to lowercase before startsWith [OK]
Common Mistakes:
  • Ignoring case sensitivity
  • Using includes instead of startsWith
  • Using endsWith instead of startsWith
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