所以我正在制作一个将输入转换为Pig Latin的算法。这是我到目前为止所做的:
function translatePigLatin(str) {
var consonantCluster = [];
var vowels = ['a', 'e', 'i', 'o', 'u'];
var stringArray = str.split('');
if (vowels.indexOf(stringArray[0]) === 0) {
stringArray.push('w', 'a', 'y');
stringArray = stringArray.join('');
console.log(stringArray);
return stringArray;
}
for (var i = 0; i < stringArray.length; i++) {
if (vowels.indexOf(stringArray[i]) == -1) {
consonantCluster.push(stringArray[i]);
stringArray.push(stringArray[i]);
} else {
stringArray.push('a', 'y');
stringArray.splice(0, consonantCluster.length);
stringArray = stringArray.join('');
console.log(stringArray);
return stringArray;
}
}
return str;
}
translatePigLatin("eight");
它在很大程度上起作用。但是,当我将一个单词交给一个元音函数时,如果它不是以字母A开头则不起作用。相反,它返回ay
而不是它应该返回的单词元音way
。任何帮助将不胜感激!
答案 0 :(得分:1)
你写第6行的方式只是检查stringArray的第一个字母是否等于元音数组的第一个字母(index = 0)。
如果您将(vowels.indexOf(stringArray[0]) === 0)
更改为if (vowels.indexOf(stringArray[0]) !== -1) {
,您将检查stringArray中的第一个字母是否与元音数组中的任何值匹配。
答案 1 :(得分:0)
W3 Schools answers your question