儿童黑话

题目

在这道题目中,我们需要写一个函数,把传入的字符串翻译成“儿童黑话”。
儿童黑话的基本转换规则很简单,只需要把一个英文单词的第一个辅音字母或第一组辅音从移到单词的结尾,并在后面加上ay即可。在英语中,字母 a、e、i、o、u 为元音,其余的字母均为辅音。辅音从的意思是连续的多个辅音字母。
额外地,如果单词本身是以元音开头的,那只需要在结尾加上way。
在本题中,传入的单词一定会是英文单词,且所有字母均为小写
translatePigLatin("eight")应该返回 "eightway"
translatePigLatin("glove")应该返回 "oveglay"

代码一

function translatePigLatin(str) {
  if (isYuan(str.substr(0, 1))) {
    str += 'way'
  } else {
    let i = 1;
    while (!isYuan(str.substr(i, 1))) {
      i++;
    }
    str = str.substr(i) + str.substr(0, i) + 'ay'
  }
  return str;
}
function isYuan(c) {
  return c === 'a' || c === 'e' || c === 'i' || c === 'o' || c === 'u'
}
translatePigLatin("consonant");

代码一

function translatePigLatin(str) {
  if (isYuan(str.substr(0, 1))) {
    str += 'way'
  } else {
    str = str.replace(/^([^aeiou]+)(\w*)/, '$2$1ay')
  }
  return str;
}
function isYuan(c) {
  return c === 'a' || c === 'e' || c === 'i' || c === 'o' || c === 'u'
}
translatePigLatin("consonant");
posted @ 2020-02-06 23:34  哥哦狗子  阅读(300)  评论(0编辑  收藏  举报