我正在尝试编写一个代码,将字符串“way”添加到以元音开头的单词中,或者如果该单词以以下形式开头,则在字符串末尾添加单词“ay”和该单词的第一个字母一个辅音。我将单词分开,看看是否以辅音或元音开头,然后在第一个字母中添加“way”或“ay”,最后加入数组以显示结果字符串。问题是连接仅适用于以元音开头的单词。我该如何解决这个问题?
代码:
function isVowel(c) {
return ['a', 'e', 'i', 'o', 'u'].indexOf(c.toLowerCase()) !== -1;
}
function translatePigLatin(str) {
str=str.split('');
var firstLetter=str[0];
if(isVowel(firstLetter)) str.push("way");
else {
str.splice(0,1);
str=str+firstLetter+"ay";
}
str= Array.prototype.join.call(str,"");
alert(str);
return str;
}
translatePigLatin("consonant");
最佳答案
您将运算符 +
添加到数组中,这可能会弄乱类型,将数组转换为字符串。您应该在数组上使用 push
来获得您想要的行为。
function isVowel(c) {
return ['a', 'e', 'i', 'o', 'u'].indexOf(c.toLowerCase()) !== -1;
}
function translatePigLatin(str) {
str=str.split('');
var firstLetter=str[0];
if(isVowel(firstLetter)){
str.push("way");
}else {
str.splice(0,1);
str.push(firstLetter+"ay");
}
str= Array.prototype.join.call(str,"");
alert(str);
return str;
}
translatePigLatin("consonant");
关于javascript - Join() 方法仅将一些数组转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40566785/