Вот функция JavaScript, которая подсчитывает количество слогов в слове:
function countSyllables(word) {
word = word.toLowerCase().trim();
if (word.length <= 3) return 1;
let count = 0;
let vowels = "aeiouy";
let lastWasVowel = false;
for (let i = 0; i < word.length; i++) {
if (vowels.includes(word[i])) {
if (!lastWasVowel) {
count++;
lastWasVowel = true;
}
} else {
lastWasVowel = false;
}
}
if (word.endsWith("e")) count--;
return count || 1;
}
Пояснение функции:
- Функция принимает на вход слово.
- Он преобразует слово в нижний регистр и удаляет все начальные и конечные пробелы.
- Если длина слова равна 3 или меньше, оно считается состоящим из 1 слога и возвращает 1.
- Он инициализирует переменную count для отслеживания количества слогов.
- Он определяет строку гласных и логическую переменную
lastWasVowel, чтобы отслеживать, был ли предыдущий символ гласной. - Он перебирает каждый символ в слове.
- Если символ является гласной, а предыдущий символ не был гласной, он увеличивает переменную
countи устанавливает дляlastWasVowelзначение true. - Если символ не является гласной, для
lastWasVowelустанавливается значение false. - Если слово заканчивается на «е», переменная
countуменьшается, чтобы учесть непроизносимую букву «е» в конце некоторых слов. - Он возвращает окончательное значение
count, которое представляет количество слогов в слове.