I am trying to extract some vowels from an array using the .filte() method but the code doesn't continue on the next letters after finding instances of the first letter.The expected output is ['a','a','i'] but it only shows ['a','a'] Here is the code
function vowelsAndConsonants(s) {
const letters = s.toString().split("");
console.log(letters);
let vowels = letters.filter((letter) => {
return letter.includes("a", "e", "i", "o", "u");
});
console.log(vowels);
}
vowelsAndConsonants("javascript");
Here's one way of getting the vowels
function vowelsAndConsonants(s) {
const letters = s.toString().split("");
let vowels = letters.filter((letter) => {
return ['a', 'e', 'i', 'o', 'u'].indexOf(letter) !== -1
});
console.log(vowels);
}
vowelsAndConsonants("javascript");
The include method can only have one argument, see this website, the easiest way to test is by testing the value with an if :
const vowels = letters.filter((letter) => {
if (letter === "a" || letter === "e" || letter === "i" || letter === "o" || letter === "u" || letter === "y")
return (letter);
return("");
});
You could also use Regular Expression.
function vowelsAndConsonants(s) {
const letters = s.toString().split("");
console.log(letters);
let vowels = letters.filter((letter) => {
return /[aeiou]/.test(letter);
});
console.log(vowels);
}
vowelsAndConsonants("javascript");