gpt4 book ai didi

javascript - PigLatin substr() 和 slice() 的问题

转载 作者:行者123 更新时间:2023-11-28 00:05:32 26 4
gpt4 key购买 nike

目标给定一个字符串,将字符串翻译为 PigLatin(如果字符串以元音开头,则将“way”附加到字符串末尾 - 否则查找第一个元音并取出所有前面的字母并将其放在 str 的末尾,添加“ay” )。

代码

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");

问题

  1. 上述代码适用于“算法”和“ table ”等情况,但在“手套”情况下失败 - 让我相信问题出在 .substr() 或 .slice() 周围。进一步调查认为这是一个逻辑错误。如有任何帮助,我们将不胜感激!

最佳答案

问题是您的代码在第一次迭代期间始终会从循环中返回。 i 永远不会大于 0。

您应该做的(对于初学者)是从循环内部删除检查。像这样:

function translate(str) {

//list vowels
var vowel = ['a', 'e', 'i', 'o', 'u'];
//if first letter = vowel, add 'way' to end of sentence
if (vowel.indexOf(str[0]) > -1) {
return str + 'way';
}

// 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[i]) > -1) {
return str.substr(i) + str.slice(0,i) + 'ay';
}
}
}

这段代码应该可以解决问题。

关于javascript - PigLatin substr() 和 slice() 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31372042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com