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

JavaScript Reverse String: 3 วิธีการแก้โจทย์

โจทย์: เขียนฟังก์ชัน reverseString(str) คืนค่า String ที่กลับตัวอักษร เช่น "Hello World!" → "!dlroW olleH"

วิธีที่ 1: For Loop (มาตรฐาน)

function reverseString(str) {
  let newStr = '';
  for (let i = str.length - 1; i >= 0; i--) {
    newStr += str[i];
  }
  return newStr;
}

วนจาก index สุดท้ายลงมา 0 รวมตัวอักษรทีละตัว

วิธีที่ 2: ES6 map()

function reverseString(str) {
  let newArr = str.split('');
  let rev = newArr.map((letter, index, array) => {
    let swapIndex = array.length - index - 1;
    return array[swapIndex];
  });
  return rev.join('');
}

split('') แปลง String เป็น Array → map() สลับตำแหน่ง → join('') รวมกลับเป็น String

วิธีที่ 3: Built-in Methods (One-liner)

function reverseString(str) {
  return str.split('').reverse().join('');
}

สั้นที่สุด แต่อย่าลืมว่า reverse() แก้ไข Array ต้นฉบับ (mutate) หากต้องเก็บต้นฉบับ ให้ copy ก่อน

เปรียบเทียบ

วิธีความยาวโค้ดประสิทธิภาพหมายเหตุ
For Loopปานกลางดีมากเข้าใจง่าย ควบคุมได้
map()ยาวดีFunctional style ไม่ mutate ต้นฉบับ
split/reverse/joinสั้นที่สุดดีMutate array ต้องระวัง

สรุป

มีหลายวิธี reverse string ใน JavaScript เลือกตามความชอบ For loop เข้าใจง่าย Built-in สั้นที่สุด map() เป็น functional approach