Спасибо Яакову Айнспану и Раме Рамантану за разъяснения и за то, что они уловили мою ошибку во втором блоке!
Вот что я придумал после долгих исследований и экспериментов.
function pigLatin(str){
const vowel = ["a", "e", "i", "o", "u"];
const consonant = "/[^aeiou]{2,}/"
if(vowel.indexOf(str.charAt(0)) >= 0) {
return str + "way";
} else {
for (var i = 0; i < str.length; i++){
if(consonant.indexOf(str[i]) >= 0){
var firstChar = str.slice(0, i);
var multiCon = str.slice(i, str.length);
return multiCon + firstChar + "ay";
}
}
}
}
Сначала я столкнулся с той же проблемой со вторым блоком в переменной consonant
в if
строкаОказывается, я делал ту же ошибку - проверял str в массиве.Проблема исчезла после того, как я обернул const consonant
в строку вместо квадратных скобок массива.
Пожалуйста, дайте мне знать, если все еще есть проблемы с моим кодом, которые я не предвидел.:)
Примечание. Мне известно о другом законе латиноамериканских свиней, касающемся слов, начинающихся с согласного, но звучащих как гласная (например, слово «честный» в моем коде было бы единичным, а не честным).Я игнорирую это правило.