Прошел курс 2 раза, все равно не доходит, как его сделать и самое главное, понять, чтоб я мог не читая форума все написать. Может ли кто объяснить ход решения построения дешифровщика очень подробно? Спасибо.
Ну я попробую.
1. создаём цикл в котором объявляем переменную index равную 0, которая будет отвечать за нулевой индекс массива. Затем прописываем условие выхода из цикла - покуда наш index ну будет меньше либо равен последнему индексу массива(для этого мы от длинны массива отнимаем еденицу, т.к длина массива начинаеся с еденицы, а индекс первого элемента равен нулю.), и на каждой итерации наращиваем на 1 наш index. Тем самым цикл пройдётся по каждому индексу массива.
for (var index = 0; index <= encodedMessage.length - 1; index++) {
...
}
2 Далее создаём переменную которая на каждой итерации будет “расшифровывать” нам каждый индекс массива, для этого вызываем текущий индекс(его значение в массиве) итерации цикла и плюсуем к нему значение смещения.
var numbersSymbol = encodedMessage[index] + shift;
3 Далее создаём условие проверяющее что если значение нашей переменной numbersSymbol превысит длину нашего массива symbols, то мы отнимем от переменной длину массива и получим начальный индекс массива symbols.
if ( numbersSymbol > symbols.length) {
numbersSymbol -= symbols.length;
}
4 Затем мы производим обычную конкатенацию в переменную decodedMessage путем приклеивания полученных символов (т.е. на каждой итерации цикла мы получали значение индекса из массива encodedMessage прибавляли к нему shift и под полученная цифра является индексом массива symbols, из которого мы доставали нужное строчное значение)
decodedMessage += symbols[numbersSymbol];
Я не учитель, но надеюсь доходчиво объяснил!
Да, объяснили очень доходчиво, спасибо.
Был рад помочь=)