Не пойму в чем проблема.
function getCount(str) {
var vowelsCount = 0;
var vowels = ['a', 'e', 'i', 'o', 'u'];
for (var i = 0; i < str.length; i++) {
if (str[i] in vowels) {
vowelsCount++;
}
return vowelsCount;
}
Оператор in проверяет свойство, а не наличие значения; используйте indexOf или includes.
Проще так:
const getCount = str => str.trim().toLowerCase().split('').filter(s => ['a', 'e', 'i', 'o', 'u'].includes(s)).length;
console.info(getCount('Some'), getCount('Thing'));
Еще как вариант:
function getCount1(str) {
const re = /[aeiou]/gi; // y ???
let match = str.match(re);
return match ? match.length : 0;
}
function getCount2(str) {
const re = /[aeiou]/gi; // y ???
return (str + 'a').match(re).length - 1;
}
console.log(getCount1('QWErtyu'));
console.log(getCount1('zxcvbnm'));
console.log(getCount2('QWErtyu'));
console.log(getCount2('zxcvbnm'));
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости