Chúng ta cần viết hàm JavaScript nhận vào chuỗi và chỉ đảo ngược các nguyên âm trong chuỗi.
Ví dụ:
Nếu chuỗi đầu vào là:
const str = 'Hello';
Kết quả đầu ra:
const output = 'Holle';
Mã thực hiện:
const str = 'Hello';
const reverseVowels = (str = '') => {
const vowels = new Set(['a','e','i','o','u','A','E','I','O','U']);
let left = 0, right = str.length-1;
let foundLeft = false, foundRight = false;
str = str.split("");
while(left < right){
if(vowels.has(str[left])){
foundLeft = true
};
if(vowels.has(str[right])){
foundRight = true
};
if(foundLeft && foundRight){
[str[left],str[right]] = [str[right],str[left]];
foundLeft = false; foundRight = false;
};
if(!foundLeft) {
left++
};
if(!foundRight) {
right--
};
};
return str.join("");
};
console.log(reverseVowels(str));Kết quả in ra console:
Holle