mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-12-19 06:58:15 +08:00
pref: optimize the count vowels algo
simplify the algo by using regex and String.prototype.match method, and modified the JS Doc
This commit is contained in:
@@ -1,25 +1,21 @@
|
||||
/**
|
||||
* @function countVowels
|
||||
* @description Given a string of words or phrases, count the number of vowels.
|
||||
* @param {String} url - The input string
|
||||
* @return {Number} count
|
||||
* @param {String} str - The input string
|
||||
* @return {Number} - The number of vowel
|
||||
* @example countVowels("ABCDE") => 2
|
||||
* @example countVowels("Hello") => 2
|
||||
*/
|
||||
|
||||
const countVowels = (str) => {
|
||||
if (typeof str !== 'string') {
|
||||
throw new TypeError('Input should be a string')
|
||||
throw new TypeError('Input should be a string');
|
||||
}
|
||||
const vowels = new Set(['a', 'e', 'i', 'o', 'u'])
|
||||
let count = 0
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
const char = str[i].toLowerCase()
|
||||
if (vowels.has(char)) {
|
||||
count++
|
||||
}
|
||||
}
|
||||
return count
|
||||
|
||||
const vowelRegex = /[aeiou]/gi;
|
||||
const vowelsArray = str.match(vowelRegex) || [];
|
||||
|
||||
return vowelsArray.length;
|
||||
}
|
||||
|
||||
export { countVowels }
|
||||
export { countVowels };
|
||||
|
||||
Reference in New Issue
Block a user