ฟังก์ชันนี้จะนำตัวอักษรพิมพ์ใหญ่ (uppercase) ทั้งหมดในสตริงไปวางไว้ข้างหน้า โดยยังคงลำดับสัมพัทธ์ (relative order) ของตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กเดิมไว้
ตัวอย่าง
// Input: 'heLLO woRlD' // Output: 'LLORDhe wol'
ตัวอย่างโค้ด
const str = 'heLLO woRlD';
const moveCapitalToFront = (str = '') => {
let capitalIndex = 0;
const newStrArr = [];
for (let i = 0; i < str.length; i++) {
// ตรวจสอบว่าตัวอักษรเป็นพิมพ์ใหญ่หรือไม่
if (str[i] !== str[i].toLowerCase()) {
// แทรกตัวอักษรพิมพ์ใหญ่ที่ตำแหน่ง capitalIndex
newStrArr.splice(capitalIndex, 0, str[i]);
capitalIndex++;
} else {
// ตัวอักษรพิมพ์เล็กหรือสัญลักษณ์อื่นๆ ใส่ต่อท้าย
newStrArr.push(str[i]);
}
}
return newStrArr.join('');
};
console.log(moveCapitalToFront(str)); // 'LLORDhe wol'
จุดสำคัญ
- ใช้
splice()เพื่อแทรกตัวอักษรพิมพ์ใหญ่ที่ตำแหน่งที่กำหนด - ตัวแปร
capitalIndexติดตามตำแหน่งสุดท้ายของกลุ่มตัวอักษรพิมพ์ใหญ่ - ลำดับของตัวอักษรพิมพ์ใหญ่และพิมพ์เล็กในกลุ่มของตัวเองยังคงเดิม
ผลลัพธ์
LLORDhe wol