Что вы имеете в виду, имея 50 из них? Вы ... не имеете в виду один для каждой буквы?
А почему вы дважды проверяете значение кода клавиши? Вы видите, что код точно идентичен, кроме символа?
Сохраните таблицу поиска или прямой перевод символов и сократите ее до одного метода:
var c = lookup(e.keyCode, e.shiftKey);
$('#charLine-1').append('<span class="char">' + c + '</span>');
if (typedAdjusted >= paperWidth % charWidth) {
$('body').append('<span id="warning">WARNING!</span>');
} else {
return false;
}
Это создаст целую кучу пролетов.
var normal = {
66: 'b', 67: 'c', // etc.
};
var shifted = {
66: 'B', 67: 'C', // etc.
};
/**
* Looks up keycode using appropriate map.
*
* Returns `undefined` if not found; shouldn't insert.
*/
function lookup(code, shift) {
return shift ? shifted[code] : normal[code];
}