Так вы неправильно используете функцию reduce. Она вот так работает
var result = arr.reduce(function(sum, val) { return sum + val; }, 0); // 0 - это стартовое значение для sum, если не указать, то возьмется значение из первого элемента массива, и он будет пропущен
Вот так должен работать ваш код
var s=prompt("Введите строку");// переменная для ввода строки
function vowelsRed (s) {
var sa=s.toLowerCase().split(''); // превращает строку в массив из символов
var vs="аеёиоуыэюя";// строка с гласными
var r = sa.reduce( (sum, val) => {
if (vs.indexOf (val) !==-1) {
sum++; // добавляем в кол-во найденных гласных +1
}
return sum; // Возвращаем новую сумму (или старую, если гласных нет).
}, 0); // Запускаем reduce с нулевой суммой
return r;
}
var rezault=vowelsRed(s) ;// присваивание переменной значения функции
alert ("Количество гласных: "+rezault);
Что не понятно, спрашивайте.
UPD: Только я бы еще добавил преобразование полученной строки в нижний реристр. вот так
var sa=s.toLowerCase().split('');
т.к. у вас большая А например, получается не гласная.