Computer >> Máy Tính >  >> Lập trình >> Javascript

Đảo ngược bảng chữ cái trong một chuỗi bằng JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript sử dụng một chuỗi, str, bao gồm các bảng chữ cái và một số ký tự đặc biệt.

Hàm của chúng ta sẽ trả về một chuỗi mới dựa trên chuỗi đầu vào trong đó tất cả các ký tự không phải là bảng chữ cái ở cùng một vị trí và tất cả các chữ cái đảo ngược vị trí của chúng.

Ví dụ:nếu đầu vào của hàm là

Đầu vào

const str = 'k_lmn_opq';

Đầu ra

const output = 'q_pon_mlk';

Ví dụ

const str = 'k_lmn_opq';
const reverseAlphabets = (str) => {
   const arr = str.split('')
   let left = 0
   let right = arr.length - 1
   const swap = (a, b) => {
      const temp = arr[a]
      arr[a] = arr[b]
      arr[b] = temp
   }
   const isLetter = (x = '') => /[a-zA-Z]/.test(x)
   while (left <= right) {
   while (!isLetter(arr[left])) {
      left += 1
      if (left > right) {
         break
      }
   }  
   while (!isLetter(arr[right])) {
      right -= 1
      if (left > right) {
         break
      }
   }
      if (left > right) {
      break
   }
      swap(left, right)
      left += 1
      right -= 1
   }
   return arr.join('')
};
console.log(reverseAlphabets(str));

Đầu ra

q_pon_mlk