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

Đầ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

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

Nói cách khác index của c là 13

Tiếp theo là chuỗi thứ nhất

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 :grin:

3 Likes

cảm ơn bạn :)) giờ mới thông :))

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?