目的 给定一个字符串,翻译串入PigLatin(如果字符串以元音开头,追加“的方式”结束串 - 别人看的第一个元音并采取所有前面的字母,并在str的末尾放置,添加“ay”)。PigLatin问题与SUBSTR()和slice()
CODE
function translate(str) {
//list vowels
var vowel = ['a', 'e', 'i', 'o', 'u'];
//if first letter = vowel, add 'way' to end of sentence
// else return all letters before first vowel and append to end (with 'ay')
for (var i = 0; i < str.length; i++) {
if (vowel.indexOf(str[0]) > -1) {
return str + 'way';
} else {
return str.substr(i+1) + str.slice(0,i+1) + 'ay';
}
}
}
translate("dresser");
质询
- 上述代码工作的情况下,这样的 “算法” 和 “桌子”,但与 “手套” 失败 - 导致我相信问题在于.substr()或.slice()。另外的调查认为这是一个逻辑错误。任何帮助表示赞赏!
hmmmm ...你能精心设计吗? 当vowel.indexOf(str [i])> -1时,我需要使用'break'语句吗? – jonplaca
@kidlogic不,没有中断声明。你无条件地从循环中过早地返回。我用适用的代码更新了我的答案。我拿出'i + 1'并用'i'替换它们。 – yts
你为此 - 我感到愚蠢,因为我最近有非常相似的代码,但后来认为我是多余的我的vowel.indexOf(str [i])> -1 谢谢! – jonplaca