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:
Fahim Faisaal
2022-02-16 19:47:01 +06:00
parent 833d05d8d0
commit a2822e17b6

View File

@@ -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 };