Свинья на латыни почти закончила - PullRequest
1 голос
/ 04 августа 2020

Здравствуйте, я смог применить латинскую свинью к словам, но когда я пытаюсь применить ее к предложению, она преобразует только последнее слово, может кто-нибудь, пожалуйста, помогите мне Fini sh код

function translate(string) {
    // body...
    //1.0 split the string i am going to work with and set it to a variable
    let word = string.split("");
    console.log(word);
    //1.1 create the regular expression
    const vowelRegex = /[aeiou]/;
    console.log(vowelRegex);

    //1.2 compare if the first letter of the string matches the vowelRegex
    //meaning that if the string matches any of the vowels of the regex
    if (vowelRegex.test(string[0])) {
        return `${string}way`;
    }
    while (true) {
        if (!vowelRegex.test(word[0])) {
            const firstconsonant = word.splice(0, 1)[0];
            word.push(firstconsonant);
        } else {
            break;
        }
    }
    string = `${word.join("")}ay`;
    return string;
}

console.log(translate("apple"));
console.log(translate("banana"));
console.log(translate("cherry"));
console.log(translate("eat pie"));
console.log(translate("three"));
console.log(translate("school"));
console.log(translate("quiet"));
console.log(translate("square"));
console.log(translate("the quick brown fox"));

проблема, с которой я сталкиваюсь, заключается в том, что когда у меня есть более одного слова, например «eat p ie», оно возвращает есть pieway, а также предложение «быстрая коричневая лиса» оно применяется только к fox и возвращает foxthway, помещая " th "в конце мне нужно применить его к каждому слову отдельно. Заранее спасибо.

1 Ответ

0 голосов
/ 04 августа 2020

Я могу сказать, что это какое-то задание, и в настоящее время контекст / цель нечеткие.

Вот хороший ресурс для Regex

попробуйте изменить ваше регулярное выражение на следующее ::

function translate(text) {    
  
    const firstVowelRegex = /^[aeiou]/i; // ^ - beginning of string 
    const globalVowelRemove = /[aeiou]/ig; // i,g case insensitive and global  
        
    if (firstVowelRegex.test(text[0])) {   
       text = [text.slice(0, 1), 'way', text.slice(1)].join('').replace(globalVowelRemove, '');
    } else {                
       text = text.replace(globalVowelRemove, '');
    }
    return text + 'ay';
}


console.log(translate("apple"));
console.log(translate("banana"));
console.log(translate("cherry"));
console.log(translate("eat pie"));
console.log(translate("three"));
console.log(translate("school"));
console.log(translate("quiet"));
console.log(translate("square"));
console.log(translate("the quick brown fox"));

Regex - супер мощное средство, и оно присутствовало на каждом собеседовании по программированию, которое я когда-либо давал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...