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

โค้ด JavaScript พิมพ์สมาชิกสุดท้ายของอาร์เรย์

มีหลายวิธีในการเข้าถึงสมาชิกสุดท้ายของอาร์เรย์ใน JavaScript แต่ละวิธีมีข้อได้เสียต่างกัน

ตัวอย่างโค้ด (ใช้ pop)

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  <title>Last Array Element</title>
  <style>
    body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; }
    .result, .sample { font-size: 18px; font-weight: 500; color: rebeccapurple; }
    .result { color: red; }
  </style>
</head>
<body>
  <h1>JavaScript: พิมพ์สมาชิกสุดท้ายของอาร์เรย์</h1>
  <div class="sample"></div>
  <div class="result"></div>
  <button class="Btn">คลิกที่นี่</button>
  <h3>คลิกปุ่มด้านบนเพื่อดูสมาชิกสุดท้ายของอาร์เรย์ข้างต้น</h3>
  <script>
    const resEle = document.querySelector(".result");
    const sampleEle = document.querySelector(".sample");
    const arr = ["A", 1, 2, 3, "B", "D"];
    sampleEle.innerHTML = 'arr = ' + arr;
    
    document.querySelector(".Btn").addEventListener("click", () => {
      // ⚠️ pop() จะลบสมาชิกสุดท้ายออกจากอาร์เรย์เดิม!
      resEle.innerHTML = "Last element = " + arr.pop();
    });
  </script>
</body>
</html>

วิธีอื่นๆ ที่ดีกว่า (ไม่เปลี่ยนอาร์เรย์เดิม)

const arr = ["A", 1, 2, 3, "B", "D"];

// 1. Index (Classic)
arr[arr.length - 1];  // "D"

// 2. at() Method (ES2022) - แนะนำ!
arr.at(-1);           // "D" (รองรับ negative index)

// 3. Slice
arr.slice(-1)[0];     // "D" (คืน array ความยาว 1)

// 4. Destructuring
const [, , , , , last] = arr;  // ไม่สะดวกถ้าอาร์เรย์ยาว

// 5. Reduce (Overkill)
arr.reduce((_, last) => last);

ตารางเปรียบเทียบ

วิธีMutates Array?PerformanceBrowser Support
pop()✅ ใช่ (ลบออก)เร็วทุกเบราว์เซอร์
arr[length-1]❌ ไม่เร็วที่สุดทุกเบราว์เซอร์
at(-1)❌ ไม่เร็วModern (ES2022)
slice(-1)[0]❌ ไม่ช้ากว่า (สร้าง array ใหม่)ทุกเบราว์เซอร์

⚠️ หมายเหตุ

ตัวอย่างต้นฉบับใช้ pop() ซึ่งจะ ลบข้อมูลออกจากอาร์เรย์เดิม หากต้องการใช้ซ้ำ ควรใช้ at(-1) หรือ arr[arr.length-1] แทน

ผลลัพธ์

แสดง "D" (สมาชิกสุดท้าย) และอาร์เรย์จะเหลือ ["A", 1, 2, 3, "B"]