01/10/2018, 00:28
Giúp giải thích cách sử dụng hàm trong đoạn code
cái này là decode ROT13 trong javascript
function rot13(str) {
return str.replace(/[A-Za-z]/g, function (c) {
return "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".charAt(
"NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm".indexOf(c)
);
} );
}
rot13("SERR CVMMN!");
mình không hiểu vì sao lại dùng dược charAt, indexOf trong trường hợp này
Bài liên quan
Đầu tiên giả sữ tham số c của bạn có giá trị là ‘A’ đi.
Ở cái chuỗi thứ 2 trong hàm function[quote=“hacker001, post:1, topic:36955”]
“NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm”
[/quote]
Nó sẽ đi tìm index của c trong chuỗi này, và phương thức index© sẽ trả về giá trị của index.
Lúc này [quote=“hacker001, post:1, topic:36955”]
“NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm”.indexOf© = 13
[/quote]
Nói cách khác index của c là 13
Tiếp theo là chuỗi thứ nhất [quote=“hacker001, post:1, topic:36955”]
“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”
[/quote]
Nó sẽ đì tìm kí tự xuất hiện ở index có giá trị 13 trong chuỗi này và phương thức charAt() sẽ trả về cho bạn kí tự đó
Kí tự tìm được sẽ là ‘N’
Như vậy ta đã mã hóa từ ‘A’ sang ‘N’.
Mục đính 2 phương thức này giúp mã hóa kí tự trên cơ sở: lấy index của kí tự cần mã hóa trong 1 chuỗi rồi mã hóa kí tự này với 1 kí tự có cùng index ở chuỗi khác
cảm ơn bạn :)) giờ mới thông :))