Данный код с подсветкой синтаксиса здесь: через Friendpaste
rot13.js:
ОШИБОЧНАЯ
<script> String.prototype.rot13 = rot13 = function(s) { return (s = (s) ? s : this).split('').map(function(_) { if (!_.match(/[A-Za-z]/)) return _; c = Math.floor(_.charCodeAt(0) / 97); k = (_.toLowerCase().charCodeAt(0) - 96) % 26 + 13; return String.fromCharCode(k + ((c == 0) ? 64 : 96)); }).join(''); }; </script>
Как вы можете видеть, используя буквально одну строку для присоединения метода к объекту String в качестве прототипа, у меня есть метод map(), который я ранее настроил (я точно знаю, что этот код работает отлично; он просто перебирая каждый элемент в массиве и применяя функцию, указанную в параметре), перебирайте каждый символ в строке и делайте то, что я считал правильными вычислениями, чтобы преобразовать строку в ее аналог rot13'd. Я был грустно ошибался. Кто-нибудь может определить, где я ошибся?