Vấn đề
Chúng ta cần viết một hàm JavaScript nhận vào một chuỗi các chữ cái tiếng Anh. Hàm sẽ đẩy mỗi chữ cái tiến 10 vị trí. Nếu vượt quá 'z', quay lại 'a'.
Ví dụ
Dưới đây là mã nguồn:
const str = 'sample string';
const moveStrBy = (num = 10) => {
return str => {
const calcStr = (ch, code) => String
.fromCharCode(code + (ch.charCodeAt(0) - code + num) % 26);
const ACode = 'A'.charCodeAt(0);
const aCode = 'a'.charCodeAt(0);
return str.replace(/[a-z]/gi, ch => (
ch.toLowerCase() == ch
? calcStr(ch, aCode)
: calcStr(ch, ACode)
));
};
};
const moveByTen = moveStrBy();
console.log(moveByTen(str));Kết quả
ckwzvo cdbsxq