因此,我正在制定一种将输入转换为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
。任何帮助,将不胜感激!
第6行的编写方式只是检查stringArray的第一个字母是否等于元音数组的第一个值(索引= 0)。
如果更改(vowels.indexOf(stringArray[0]) === 0)
为if (vowels.indexOf(stringArray[0]) !== -1) {
,则将检查stringArray中的第一个字母是否与元音数组中的任何值匹配。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句