Javascript For循环在字符串的第一个字母处停止?

Javascript For循环在字符串的第一个字母处停止?,javascript,arrays,string,for-loop,Javascript,Arrays,String,For Loop,这是一个rovarspraket函数。我的for循环没有迭代短语中的其他字母。它只是停在字符串中的第一个字母“t”处。函数返回的是“tot”,而不是完整的字符串“tothohisos isos fofunon”。我盯着这个看太久了。任何建议都会有帮助。顺便说一下,我是Javascript的新手 function translate (phrase) { var splitPhrase = phrase.split().join(); var letter = splitPhrase[i]

这是一个rovarspraket函数。我的for循环没有迭代短语中的其他字母。它只是停在字符串中的第一个字母“t”处。函数返回的是“tot”,而不是完整的字符串“tothohisos isos fofunon”。我盯着这个看太久了。任何建议都会有帮助。顺便说一下,我是Javascript的新手

function translate (phrase) {
  var splitPhrase = phrase.split().join();
  var letter = splitPhrase[i];
  var vowels =  ['a', 'e', 'i', 'o', 'u'];
  var output = '';

  for (i = 0; i < phrase.length; i++) {
    if(vowels.indexOf(letter) === -1) {
      output = letter + 'o' + letter;

  } else {

  }
    return output
}
};

undefined

translate('this is fun')

"tot"
函数翻译(短语){
var splitPhrase=phrase.split().join();
var字母=分裂短语[i];
变量元音=['a','e','i','o','u'];
var输出=“”;
对于(i=0;i
为了达到“tothohisos isos fofunon”的最终预期效果,您可能忽略了一些错误或事情:

  • 您没有将数据附加到
    输出
    ,而是将其覆盖
  • 从循环内返回
    ,在第一个字母后停止循环
  • 在索引存在之前,您正在使用索引
    i
  • 不必要的拆分和连接
  • 不处理字母是元音的情况
  • 不处理空间
  • 下面是一个更正的版本:

    函数翻译(短语){
    var元音=['a','e','i','o','u',''];//句柄空格
    var输出=“”;
    对于(var i=0;i警惕(翻译(“这很有趣”)为了达到“tothohisos isos fofunon”的最终预期结果,您可能忽略了一些错误或事情:

  • 您没有将数据附加到
    输出
    ,而是将其覆盖
  • 从循环内返回
    ,在第一个字母后停止循环
  • 在索引存在之前,您正在使用索引
    i
  • 不必要的拆分和连接
  • 不处理字母是元音的情况
  • 不处理空间
  • 下面是一个更正的版本:

    函数翻译(短语){
    var元音=['a','e','i','o','u',''];//句柄空格
    var输出=“”;
    对于(var i=0;i警惕(翻译(“这很有趣”)为了达到“tothohisos isos fofunon”的最终预期结果,您可能忽略了一些错误或事情:

  • 您没有将数据附加到
    输出
    ,而是将其覆盖
  • 从循环内返回
    ,在第一个字母后停止循环
  • 在索引存在之前,您正在使用索引
    i
  • 不必要的拆分和连接
  • 不处理字母是元音的情况
  • 不处理空间
  • 下面是一个更正的版本:

    函数翻译(短语){
    var元音=['a','e','i','o','u',''];//句柄空格
    var输出=“”;
    对于(var i=0;i警惕(翻译(“这很有趣”)为了达到“tothohisos isos fofunon”的最终预期结果,您可能忽略了一些错误或事情:

  • 您没有将数据附加到
    输出
    ,而是将其覆盖
  • 从循环内返回
    ,在第一个字母后停止循环
  • 在索引存在之前,您正在使用索引
    i
  • 不必要的拆分和连接
  • 不处理字母是元音的情况
  • 不处理空间
  • 下面是一个更正的版本:

    函数翻译(短语){
    var元音=['a','e','i','o','u',''];//句柄空格
    var输出=“”;
    对于(var i=0;i警惕(翻译(“这很有趣”)这是科里答案的固定版本。他所说的一切都是正确的,只是当角色也是空格时,你也需要跳过。此外,没有理由浪费精力将元音组成一个数组,使用下面这样的字符串也可以。我还测试了它,以确保它返回您在原始帖子中要求的输出

    function translate (phrase) {
        var skip = 'aeiou ';
        var output = '';
    
        for (var i = 0; i < phrase.length; i++) {
            var letter = phrase[i];
            if (skip.indexOf(letter) === -1) {
                output += letter + 'o' + letter;
            } else {
                output += letter;
            }
        }
    
        return output;
    };
    
    alert(translate('this is fun'));
    
    函数翻译(短语){
    var skip='aeiou';
    var输出=“”;
    对于(var i=0;i