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

Đảo ngược chuỗi với một bước ngoặt trong JavaScript

Chúng tôi được yêu cầu viết một hàm JavaScript lấy chuỗi str làm đối số đầu tiên và một số nguyên num làm đối số thứ hai.

Hàm của chúng ta sẽ đảo ngược các ký tự num đầu tiên cho mỗi ký tự 2 * num tính từ đầu chuỗi. Và nếu chỉ còn ít hơn num ký tự, chúng ta phải đảo ngược tất cả chúng.

Nếu có ít hơn 2 * num nhưng lớn hơn hoặc bằng ký tự num, thì chúng ta phải đảo ngược ký tự num đầu tiên và để nguyên ký tự còn lại.

Ví dụ -

Nếu chuỗi đầu vào và số là -

const str = 'klmnopq';
const num = 2;

Sau đó, đầu ra phải là -

const output = 'lkmnpoq';

Ở đó, chúng tôi đã đảo ngược 2 ký tự đầu tiên trong số 4 ký tự đầu tiên, sau đó chuyển sang để thấy rằng chúng tôi chỉ còn lại 3 ký tự, vì vậy chúng tôi đã đảo ngược 2 trong số 3 ký tự đầu tiên.

Ví dụ

Mã cho điều này sẽ là -

const str = 'klmnopq';
const num = 2;
const reverseString = (str = '', num = 1) => {
   if(str.length < num){
      return str.split("").reverse().join("");
   };
   let res = "";
   for(let i = 0; i < str.length; i += (2*num)){
      res += str.split("").slice(i, i+num).reverse().join("");
      res += str.slice(i+num, i+2*num);
   };
   return res;
};
console.log(reverseString(str, num));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

lkmnpoq