Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

กลับตัวอักษรในสตริงแบบมีเงื่อนไข (Reverse String with Twist) ใน JavaScript

ปัญหา

ฟังก์ชันรับสตริง str และตัวเลข num ให้กลับตัวอักษร num ตัวแรก ในทุกช่วง 2*num ตัวอักษร หากเหลือไม่ถึง num ตัว ให้กลับทั้งหมดที่เหลือ

ตัวอย่าง

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

กลับ 2 ตัวแรกของ 4 ตัวแรก → "lk", เหลือ "mnopq" → กลับ 2 ตัวแรกของ 3 ตัวที่เหลือ → "nm" → ผลลัพธ์ 'lkmnpoq'

โค้ดตัวอย่าง

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));

ผลลัพธ์

lkmnpoq