ปัญหา
ฟังก์ชันรับสตริง 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