Javascript 试图理解rö;varspr&xE5;ket翻译器

Javascript 试图理解rö;varspr&xE5;ket翻译器,javascript,function,if-statement,for-loop,Javascript,Function,If Statement,For Loop,我正在做一个初学者练习,创建一个rövarspråket翻译 编写一个函数translate(),将文本转换为 “rövarspråket”。也就是说,将每个辅音加倍,并放置一个 中间出现“o”。例如,翻译(“这很有趣”) 应返回字符串“tothohisos isos fofunon” 我提出的解决方案很糟糕,所以我找到了一个,并试图理解它 var translate = function(text) { var string = text.toLowerCase(); var vowe

我正在做一个初学者练习,创建一个rövarspråket翻译

编写一个函数translate(),将文本转换为 “rövarspråket”。也就是说,将每个辅音加倍,并放置一个 中间出现“o”。例如,翻译(“这很有趣”) 应返回字符串“tothohisos isos fofunon”

我提出的解决方案很糟糕,所以我找到了一个,并试图理解它

var translate = function(text) {
  var string = text.toLowerCase();
  var vowels = ["a", "e", "i", "o", "u", " "];
  var y = "";
  for (i = 0; i < string.length; i++) {
     var current = string.charAt(i); 
    if (vowels.indexOf(current) != -1) {
        y = (y + (current));
    } else {
        y = (y + (current + "o" + current));
    }
  }
  return y;
}

console.log(translate("this is fun"));
var translate=函数(文本){
var string=text.toLowerCase();
可变元音=[“a”、“e”、“i”、“o”、“u”、“u];
变量y=“”;
对于(i=0;i
  • 为什么
    if(元音.indexOf(当前)!=-1)
    特别需要
    -1
    ?我试过
    -2
    -1000
    1000
    ,但它们都破坏了功能

  • 如果我更改
    y=“”
    y=“XYZ”
    翻译(“这很有趣”)
    返回“xyztothehisos fofunon”。为什么它只在第一个辅音之前,而不是所有辅音之前

      • 元音
        中找不到
        当前
        时,精确返回
        -1
        。这是来自其他语言的一个旧约定,其中返回值都必须是相同的类型(在本例中为整数)。如果Javascript是今天发明的,它可能会返回
        null
        false

      • y
        仅在此函数中是函数的返回值。它一开始是空的,每次迭代
        for
        循环都会向
        y
        添加更多的文本。如果您设置
        y=“XYZ”
        它将在
        XYZ
        之后添加文本。该函数以空的
        y
        开始

          • 元音
            中找不到
            当前
            时,精确返回
            -1
            。这是来自其他语言的一个旧约定,其中返回值都必须是相同的类型(在本例中为整数)。如果Javascript是今天发明的,它可能会返回
            null
            false

          • y
            仅在此函数中是函数的返回值。它一开始是空的,每次迭代
            for
            循环都会向
            y
            添加更多的文本。如果您设置
            y=“XYZ”
            它将在
            XYZ
            之后添加文本。该函数以空的
            y
            开始

          为什么
          if(元音.indexOf(当前)!=-1)
          特别需要-1?我试过-2,-1000,1000,但它们都破坏了功能

          嗯,这就是找不到角色时返回的结果。如果你和其他任何东西相比,它会假设总是看到一个元音,而从不翻译任何东西

          如果我更改
          y=“”
          y=“XYZ”
          翻译(“这很有趣”)
          返回
          “xyztohohisos isos fofunon”
          。为什么它只在第一个辅音之前,而不是所有辅音之前

          因为它与辅音无关
          y
          是累加器、缓冲区,不管您怎么称呼它,翻译结果逐项附加到它。它自然地以空字符串开始(初始化)

          为什么
          if(元音.indexOf(当前)!=-1)
          特别需要-1?我试过-2,-1000,1000,但它们都破坏了功能

          嗯,这就是找不到角色时返回的结果。如果你和其他任何东西相比,它会假设总是看到一个元音,而从不翻译任何东西

          如果我更改
          y=“”
          y=“XYZ”
          翻译(“这很有趣”)
          返回
          “xyztohohisos isos fofunon”
          。为什么它只在第一个辅音之前,而不是所有辅音之前

          因为它与辅音无关
          y
          是累加器、缓冲区,不管您怎么称呼它,翻译结果逐项附加到它。它自然地以空字符串开始(初始化)