Я пытаюсь создать цезарский шифр в Javascript и не знаю, как это сделать. Возможно, мой подход усложняет его, но я пытаюсь понять, как установить максимальное значение для добавления чисел, но добавление продолжения начинается с минимального числа. Вот код, у меня есть:Как вы обрабатываете сдвиг на шифре Цезаря в Javascript?
$(document).ready(function(){
var alpha = [];
var encoded = [];
alpha = {
'1': 'a',
'2': 'b',
'3': 'c',
'4': 'd',
'5': 'e',
'6': 'f',
'7': 'g',
'8': 'h',
'9': 'i',
'10': 'j',
'11': 'k',
'12': 'l',
'13': 'm',
'14': 'n',
'15': 'o',
'16': 'p',
'17': 'q',
'18': 'r',
'19': 's',
'20': 't',
'21': 'u',
'22': 'v',
'23': 'w',
'24': 'x',
'25': 'y',
'26': 'z'
};
$('#cipher_form').submit(function(event){
event.preventDefault();
var input = $('#cipher_input').val();
var key = $('#cipher_key').val();
var chars = input.split('');
for(var i = 0; i<chars.length; i++){
console.log(chars[i]);
for(var index in alpha){
if(alpha[index] == input[i]){
encoded.push(index);
}
}
}
for(var i=0; i<encoded.length; i++){
alert(encoded[i]);
}
});
});
Итак, когда форма представляет, я захватывая значение входного сигнала, и превратить его в массив символов. Затем я прокручиваю свой объект и нахожу пару значений ключа, которая соответствует символу и нажимает ключ на другой массив. Мой план состоял в том, чтобы перебрать мой массив ключей и добавить cipher_key к этому номеру.
Итак, если в моем объекте есть буква «o», а мой cipher_key - «5», он добавит 15 + 5 и в итоге будет «20», что будет «t». Проблема, которую я вижу, заключается в том, что если мое письмо «z», и вы добавляете 26 + 5, вы получите 31, которого нет в моем объекте.
Моя задача - выяснить, как добавить cipher_key к моему номеру до 26, но если он переместится через 26, сбросьте и начните с 1 и продолжите добавление. Поэтому, если буква «z», а cipher_key - «5», это займет 26 + 5 и заканчивается на «5» для буквы «e».
Это можно сделать? Или мой подход совершенно не прав?
Я бы пошел с нулевой структурой и затем использовал оператор остатка '%', чтобы переместить число в правый диапазон. другой момент - использовать объект, как тот, который у вас есть, для поиска по номеру. '{'A': 0, 'B': 1, ...}' –