# JS Algorithm – Number of vowels

Western Wall, Jerusalem, Israel

Write a function that returns the number of vowels used in a string. Vowels are the characters ‘a’, ‘e’, ‘i’, ‘o’, and ‘u’.

Examples
vowels(‘Hi There!’) –> 3
vowels(‘Why do you ask?’) –> 4
vowels(‘Why?’) –> 0

#### First solution:

``````function vowels(str) {
const vowels = ['a', 'e', 'i', 'o', 'u'];
let counter = 0;

str.split('').forEach((letter) => {

if (vowels.includes(letter.toLowerCase())) {
counter += 1;
}
});

return counter;
}

Result:

#### Second solution:

``````function vowels(str) {
let counter = 0;
const checker = "aeiou";

// Go through every character of my string
// and convert the main string to lower case
for (let char of str.toLowerCase()) {

// Check if in our checker string include the
// current char of the main string
if (checker.includes(char)) {
// if is that character is included
// in our checker then increment the counter
counter ++;
}
}

return counter;
}

Result:

#### Third solution:

``````function vowels(str) {
// With regular expressions
// and will return an array With
// the matches that found
const matches = str.match(/[aeiou]/gi);

// Return the number of vowels
return matches ? matches.length : 0
}

Result:

#### Four solution:

``````function vowels(str) {
const text = str.split('');
let counter = 0;

text.filter((letter) => {
if (letter.toLowerCase() === 'a'
|| letter.toLowerCase() === 'e'
|| letter.toLowerCase() === 'i'
|| letter.toLowerCase() === 'o'
|| letter.toLowerCase() === 'u') {
counter += 1;
}
})

return counter;
}