2016-04-09 3 views
1

По существу я работаю над этим coding challenge на FreeCodeCamp. Начало вызова упоминает об этом, чтобы начать с ...Передача значения подматрицы в CharCodeAt в JavaScript

Обычным современное использование является шифром ROT13, где значения букв сдвинуты на 13 мест. Таким образом, «A» ↔ 'N', 'B' ↔ 'O' и т. Д.

Напишите функцию, которая вводит строку с кодировкой ROT13 в качестве входных данных, а возвращает декодированную строку.

До сих пор я передал строку массиву с каждой частью строки в своем собственном массиве (подматрица). Оттуда я полагаю, что я бы использовал цикл для прохождения каждого символа в строке (в каждом подматрице) и передать метод CharCodeAt каждому из них.

Моя проблема заключается в передаче каждого отдельного символа для прохождения через CharCodeAt.

Это часть общей функции, которая следует ниже:

Для меня это имеет смысл, так как я передаю значение каждого суб-массива в переменную

var foo = container[i][k]; 


// var output = container.map(function mapHandler(){foo.charCodeAt(k)}); 



function rot13(str){ 
    var container, j = 0; 
    while(j <= str.length - 1){ 
     container = str.split(' '); 
     j++; 
    } 

    for(var i = 0; i < container.length; i++){ 

    for(var k = 0; k < container[i].length; k++){ 
      var foo = container[i][k]; 

      var map = Array.prototype.map; 
      var output = map.call(foo, function(x){ return x.charCodeAt(k);}); 

      // var output = container.map(function mapHandler(){foo.charCodeAt(k)}); 
      // output.charCodeAt(k); 

    } 

} 

    return output; 

} 

rot13("SERR PBQR PNZC") should decode to "FREE CODE CAMP" 

Может кто-нибудь просто помочь дойти до этого? Я не хочу целого решения!

Заранее благодарен!

+1

Попробуйте использовать 'str.split ('');' (без пробела) ... вы получите массив, содержащий каждый символ, включая пробелы, тогда вам не понадобится больше одного цикла. – Mottie

+0

Ум ... почему вы ссылаетесь на 'container' до того, как он был определен? –

+0

см. Здесь проблемы: https://jsbin.com/mivepeh/2/edit?js,console – JordanHendrix

ответ

0

Вы можете превратить строку в массив отдельных букв, разделив ее с пустой строкой:

var arr = str.split("") 

Затем вы можете использовать, например .map() изменить каждую букву в декодированного одно:

var decoded = arr.map(x=> { 
    // decode x 
}) 
Смежные вопросы