.indexOf()不适用于特定的元音

耶拉尼·汤普森(Jelani Thompson)

因此,我正在制定一种将输入转换为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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章