Подсчитать количество определенных букв в строке методом reduce
Уважаемые форумчане. Помогите исправить ошибку в коде. Ошибка, мне кажется, в цикле if, когда он находит вторую 'а' идет ошибка в просчете
let getValue = (string, letter) => {
count = 0;
let arr = [];
arr = string.split('').reduce((count, elem) => {
console.log(elem, letter)
if (elem === letter) {
count++;
console.log(count)
}
}, 0)
return count
}
console.log(getValue('abcabca', 'a'));
Ответы (1 шт):
Автор решения: wololo
→ Ссылка
У вас есть две переменных с именем count. Одна объявлена внутри getValue:
count = 0;
А другая — параметр стрелочной функции внутри reduce:
.reduce((count, elem) => ...
Второй count не имеет никакого отношения к первому. Внутри стрелочной функции вы наращиваете count, но это не та переменная, которую вы пытаетесь изменить.
Перепишите так:
let getValue = (string, letter) => {
let count = 0;
string.split('').reduce((arg1, elem) => count += elem === letter, 0);
return count;
};
console.log(getValue('abcabca', 'a'));
А ещё лучше так:
let getValue = (string, letter) => {
return string.split('').reduce((count, elem) => count += elem === letter, 0);
};
console.log(getValue('abcabca', 'a'));