freeCodeCamp Challenge Guide: Pig Latin

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