I didn’t see my solution here so I’ll post it. Maybe a little bit basic but it works!
function translatePigLatin(str) {
function isVowel(x){
var result;
result = (x == 'a' || x == 'e' || x == 'i' || x == 'o' || x == 'u');
return result;
}
if(isVowel(str[0])){
return str + 'way';
}
else{
for(var i=0; i<str.length; i++){
if(isVowel(str[i])){
return str.slice(i, str.length) + str.substring(0, i) + 'ay';
}
}
}
3 Likes
My solution, i used regular exp and swithc statement.
function translatePigLatin(str) {
var regEx = /([^bcdfghklmnpqrstvwxz])\w+/;
var match = str.match(regEx);
switch (str.length - match[0].length) {
case 0:
return str + “way”;
case 1:
return match[0] + str[0] + “ay”;
default:
return match[0] + str[0] + str[1] + “ay”;
}
}
1 Like
function translatePigLatin(str) {
return str.match(/^[aeiou]+/) ?
str + "way" :
str.replace(/^(\w+?)(?=[aeiou])(.*)/, "$2$1ay");
}
translatePigLatin("glove");
This version has the virtue of brevity but it makes heavy use of regexen.
8 Likes
Yours is probably the best solution.
2 Likes
Very elegant—possibly the best solution here IMO.
2 Likes