2014-11-04 3 views
-1

Для тех, кто знаком с этой викториной, я пытаюсь принять строковый аргумент и преобразовать каждую букву в букву, которая следует в алфавите. EG, аргумент «abc» должен стать «bcd».CoderByte JavaScript Letter Changes - первые шаги

Первая часть моего кода работает. Он берет первую букву аргумента и преобразует ее. Теперь я пытаюсь сделать это для каждой буквы аргумента, а затем объединить результаты в одну строку в качестве вывода. Эта часть не работает. Я получаю сообщение об ошибке: "SyntaxError: Неожиданный токен;"

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; 
} 

Я новичок, так что спасибо заранее.

+0

Вы никогда не обновляете 'currentLetter',' currentAlphaPos', 'nextAlphaPos' или' nextAlpha'. Эти значения не меняются только потому, что вы изменили 'n'. – Mathletics

ответ

1

Вы путаете петли while и for.

Вы пытаетесь сделать for (iterator; condition; step); синтаксис while - это просто while (condition).

+0

Спасибо! Утомленные новички. Он все еще не работает, но я ближе. Теперь он выдает кучу одного и того же письма. IE, [var n] не прогрессирует, что я пытался сделать в цикле [for]. – TCannadySF

+0

Обновление: Думаю, я понял. Я переместил кучу «глобальных VAR» * в * цикл [for]. Кажется, это трюк. – TCannadySF

+0

У вас нет глобальных переменных; перемещение назначений переменных, которые необходимо изменить на каждой итерации, решит вашу проблему, хотя, да. – Mathletics