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

วิธีกลับลำดับสตริง (Reverse String) ใน JavaScript

ตัวอย่าง: กลับลำดับสตริง "qries"

ใช้ลูป while วนจากตัวสุดท้ายมาหาตัวแรก

<!DOCTYPE html>
<html>
<body>
  <script>
    var myStr;
    function reverseStr(myStr) {
      // ตรวจสอบค่าว่างและชนิดข้อมูล
      if(!myStr.trim() || 'string' !== typeof myStr) {
        return;
      }
      let l = myStr.length, s = '';
      while(l > 0) {
        l--;
        s += myStr[l];
      }
      return s;
    }
    document.write("Reversed String: " + reverseStr("qries"));
  </script>
</body>
</html>

ผลลัพธ์

Reversed String: seirq

วิธีอื่นๆที่ทันสมัยกว่า (ES6+)

1. ใช้ Spread Operator + reverse() + join()

function reverseStr(str) {
  return [...str].reverse().join('');
}
console.log(reverseStr("qries")); // "seirq"

2. ใช้ Array.from()

function reverseStr(str) {
  return Array.from(str).reverse().join('');
}

3. ใช้ reduce()

function reverseStr(str) {
  return [...str].reduce((rev, char) => char + rev, '');
}

ข้อควรพิจารณา

  • วิธี split('').reverse().join('') แบบเก่ามีปัญหากับ Unicode Surrogate Pairs (อีโมจิ, ตัวอักษรพิเศษ)
  • [...str] (Spread Operator) จัดการ Unicode ได้ถูกต้อง
  • สำหรับประสิทธิภาพสูงสุดกับสตริงยาวมาก ให้ใช้ลูป for หรือ while แบบเดิม

สรุป

วิธีคลาสสิกใช้ลูป while ทำงานได้ดี แต่ใน ES6+ ควรใช้ [...str].reverse().join('') เพื่อความถูกต้องกับ Unicode และโค้ดสั้นกว่า