Mã trong câu hỏi với cú pháp nổi bật ở đây: via FriendpasteViệc triển khai một dòng rot13 trong JavaScript của tôi ở đâu sai?
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>
Như bạn thấy, sử dụng theo đúng nghĩa đen một dòng duy nhất để đính kèm một phương pháp để String đối tượng tạo mẫu la, tôi có phương thức map() mà trước đây tôi đã thiết lập (tôi biết chắc chắn rằng mã đó hoạt động hoàn hảo; nó đơn giản lặp qua từng phần tử trong mảng và áp dụng hàm được chỉ định trong tham số) đi qua từng ký tự trong một chuỗi và làm những gì tôi nghĩ là những tính toán thích hợp để biến chuỗi thành rot13'd. Tôi đã nhầm lẫn. Ai có thể phát hiện ra nơi tôi đã đi sai?
Kết quả không chính xác mà bạn đang nhận được là gì? – Triptych
Ví dụ: 'Bacon'.rot13() sắp ra' Onp | {'khi nó là' Onpba '... –
Vậy làm cách nào để bạn chắc chắn rằng hàm bên trong hoạt động hoàn hảo? – Triptych