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

การย้ายตัวอักษรพิมพ์ใหญ่ไปหน้าสตริงโดยรักษาลำดับ - JavaScript

ฟังก์ชันนี้จะนำตัวอักษรพิมพ์ใหญ่ (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