1.任务及要求
Pig Latin
把指定的字符串翻译成 pig latin。
Pig Latin 把一个英文单词的第一个辅音或辅音丛(consonant cluster)移到词尾,然后加上后缀 "ay"。
如果单词以元音开始,你只需要在词尾添加 "way" 就可以了。
如果你被难住了,记得使用 Read-Search-Ask尝试与他人结伴编程、编写你自己的代码。
这是一些对你有帮助的资源:
测试数据:
translate("california")
应该返回 "aliforniacay"。translate("paragraphs")
应该返回 "aragraphspay"。translate("glove")
应该返回 "oveglay"。translate("algorithm")
应该返回 "algorithmway"。translate("eight")
应该返回 "eightway"。
2.我的解法
// 百度一大堆先:
// 元音字母:a、e、i、o、u
// 其余为辅音字母
// 辅音丛:单词前几个连续辅音字母,到第一个元音字母为止
// 思路梳理:
// 1,数组存储元音字母
// 2,按字母分割存储
// 2,匹配辅音,到第一个元音字母为止
// 从字符串第一个字母判断是否存在于元音数组,找到则返回索引,并结束循环;
// 3,拼接字符串:如果索引为0,则直接在字符串后面添加‘way’,
// 如果不为0,则将索引前的字符移动到索引后字符之后,添加‘ay’
function translate(str) { var vowelArr = ['a','e','i','o','u']; var strArr = str.split(''); var strLength = strArr.length; var firstVow = 0; for(var i =0; i < strLength;i ++) { if(vowelArr.indexOf(strArr[i]) > -1) { firstVow = i; break; } } if(firstVow === 0) { str += 'way'; } else { str = str.substr(firstVow) + str.substr(0,firstVow) + 'ay'; } return str; } translate("consonant"); //简书例子:https://www.jianshu.com/p/9cfce14e5cb7 // CSDN 例子:使用正则表达式 /* function translate(str) { if (/^[aeiou]/.test(str)) { //元音开始 str = str + "way"; } else { //辅音开始 var index = /[aeiou]/.exec(str).index; str = str.slice(index) + str.substring(0, index) + "ay"; } return str; } translate("consonant"); ———————————————— 版权声明:本文为CSDN博主「kuangyexiwan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/kuangyexiwan/article/details/80178420 */