Viết hàm nhận chuỗi, trả về chuỗi mirror: 'abcd' -> 'zyxw'. Mỗi ký tự ánh xạ sang ký tự cách nó (26 - N) vị trí, N là chỉ số 1-based (a=1, z=26).
Dùng String.prototype.replace() với regex khớp A-Za-z, callback tính ký tự mirror.
Ví dụ
const str = 'ABCD';
const mirrorString = str => {
const regex = /[A-Za-z]/g;
return str.replace(regex, char => {
const ascii = char.charCodeAt();
let start, end;
if (ascii > 96) {
start = 97;
end = 122;
} else {
start = 65;
end = 90;
}
return String.fromCharCode(end - (ascii - start));
});
}
console.log(mirrorString(str));
console.log(mirrorString('Can we flip this as well'));
console.log(mirrorString('SOME UPPERCASE STUFF'));Kết quả
Đầu ra trong console sẽ là:
ZYXW Xzm dv uork gsrh zh dvoo HLNV FKKVIXZHV HGFUU