CoderByte JavaScript字母更改-第一步

CoderByte JavaScript字母更改-第一步,javascript,arrays,counter,Javascript,Arrays,Counter,对于熟悉此测验的人,我尝试使用一个字符串参数,将每个字母转换为字母表中的字母。例如,论点“abc”应该变成“bcd” 我的代码的第一部分是有效的。它接受参数的第一个字母并将其转换。现在,我尝试对参数的每个字母执行此操作,然后将结果连接成一个字符串作为输出。这部分坏了。我收到错误,“SyntaxError:意外令牌;” function-LetterChanges(str){ var string=str.toLowerCase() 变量字母表=[“a”、“b”、“c”、“d”、“e”、“f”、“

对于熟悉此测验的人,我尝试使用一个字符串参数,将每个字母转换为字母表中的字母。例如,论点“abc”应该变成“bcd”

我的代码的第一部分是有效的。它接受参数的第一个字母并将其转换。现在,我尝试对参数的每个字母执行此操作,然后将结果连接成一个字符串作为输出。这部分坏了。我收到错误,“SyntaxError:意外令牌;”

function-LetterChanges(str){
var string=str.toLowerCase()
变量字母表=[“a”、“b”、“c”、“d”、“e”、“f”、“g”、“h”、“i”、“j”、“k”、“l”,
“m”、“n”、“o”、“p”、“q”、“r”、“s”、“t”、“u”、“v”、“w”、“x”、“y”、“z”];
var n=0;
var输出=”;
var currentLetter=字符串[n];
var currentAlphaPos=字母表索引Of(currentLetter);
var nextAlphaPos=currentAlphaPos+1;
var nextAlpha=字母表[nextAlphaPos];
//上面的代码有效。下面的代码导致错误
而(i=1;i

我是初学者,所以请提前感谢。

您混淆了
for
循环


您正在尝试执行(迭代器;条件;步骤)
while
语法就是
while(condition)

您永远不会更新
currentLetter
currentAlphaPos
nextAlphaPos
、或
nextAlpha
。这些值不会因为您更改了
n
而更改。谢谢!这里有一双疲惫的新手眼睛。它仍然不起作用,但我离它更近了。它现在输出一组相同的字母。IE,[var n]没有进展,我尝试在[for]循环中这样做。更新:我想我明白了。我把一堆“全局VAR”转移到[for]循环中。这似乎成功了。你没有任何全局变量;但是,移动每次迭代都需要更改的变量赋值可以解决您的问题。样式提示:大写的函数名用于构造函数<代码>函数letterChanges(str){}
在这里更可取。感谢您提供的样式提示。有趣的是,[LetterChanges]实际上是CoderBytes的内置代码。我觉得这也很奇怪。
function LetterChanges(str) { 
   var string = str.toLowerCase()
   var alphabet = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l",       
   "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"];
   var n = 0;
   var output = "";
   var currentLetter = string[n];
   var currentAlphaPos = alphabet.indexOf(currentLetter);
   var nextAlphaPos = currentAlphaPos + 1; 
   var nextAlpha = alphabet[nextAlphaPos];

   //the code above this works. The code below results in an error

  while (i = 1;i < string.length; i++){
      output += nextAlpha;
      n += 1;
   };

   return output;
}