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

วิธีตรวจสอบว่าตัวแปรเป็น Array ใน JavaScript

เพื่อตรวจสอบว่าตัวแปรเป็น array ใช้ instanceof Syntax:

variable instanceof Array

ตัวอย่าง

ตัวอย่างตรวจสอบตัวแปร "sports" ว่าเป็น array หรือไม่:

<html> 
  <body> 
    <script> 
      var sports = ["tennis", "football", "cricket"]; 
      if (sports instanceof Array) { 
        alert('Array!'); 
      } else { 
        alert('Not an array'); 
      } 
    </script> 
  </body> 
</html>

วิธีที่แนะนำในปัจจุบัน (ES5+)

// Array.isArray() - มาตรฐาน แนะนำมากที่สุด
Array.isArray(sports)  // true
Array.isArray([])      // true
Array.isArray({})      // false
Array.isArray(null)    // false

// instanceof - มีข้อจำกัดใน cross-frame/iframe contexts
sports instanceof Array  // true (แต่ล้มเหลวถ้ามาจาก iframe อื่น)

ความแตกต่าง

วิธีข้อดีข้อเสีย
Array.isArray()ทำงานถูกต้องข้าม frame/iframe, มาตรฐาน ES5+-
instanceof Arrayรองรับเก่า, เข้าใจง่ายล้มเหลวกับ cross-frame arrays
Object.prototype.toString.call(arr) === '[object Array]'ทำงานทุกกรณี, รองรับเก่ามากverbose

แนะนำ: ใช้ Array.isArray() เสมอ