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ẽ xây dựng một chuỗi mới và mỗi phụ âm sẽ được đẩy tiến 9 vị trí trong bảng chữ cái. Nếu vượt quá 'z', quay lại 'a'. Và mỗi nguyên âm sẽ được đẩy 5 vị trí.
Ví dụ
Dưới đây là mã nguồn:
const str = 'sample string';
const moveWords = (str = '') => {
str = str.toLowerCase();
const legend = 'abcdefghijklmnopqrstuvwxyz';
const isVowel = char => 'aeiou'.includes(char);
const isAlpha = char => legend.includes(char);
let res = '';
for(let i = 0; i < str.length; i++){
const el = str[i];
if(!isAlpha(el)){
res += el;
continue;
};
let pos;
const ind = legend.indexOf(el);
if(isVowel(el)){
pos = (21 + ind) % 26;
}else{
pos = (ind + 9) % 26;
};
res += legend[pos];
};
return res;
};
console.log(moveWords(str));Kết quả
bvvyuz bcadwp