แม้ว่าการใช้งาน JS อาจติดตามค่าดังกล่าวภายใน แต่ก็ไม่มีวิธีมาตรฐานที่จะได้รับ
ในอดีตตัวแปร Javascript ของ Mozilla เปิดเผยถึงสิ่งที่ไม่ได้มาตรฐาน__count__
แต่ถูกลบออกด้วยเวอร์ชัน 1.8.5
สำหรับการเขียนสคริปต์ข้ามเบราว์เซอร์คุณติดอยู่กับการทำซ้ำคุณสมบัติและการตรวจสอบอย่างชัดเจนhasOwnProperty()
:
function countProperties(obj) {
var count = 0;
for(var prop in obj) {
if(obj.hasOwnProperty(prop))
++count;
}
return count;
}
ในกรณีของการใช้งานที่มีความสามารถ ECMAScript 5 สิ่งนี้สามารถเขียนเป็น (Kudos to Avi Flax )
function countProperties(obj) {
return Object.keys(obj).length;
}
โปรดทราบว่าคุณจะพลาดคุณสมบัติที่ไม่สามารถนับได้ (เช่นอาร์เรย์length
)
หากคุณใช้เฟรมเวิร์กเช่น jQuery, Prototype, Mootools, $ ใดก็ตามที่ใหม่ล่าสุดให้ตรวจสอบว่าพวกเขามาพร้อมกับคอลเลกชัน API ของตัวเองหรือไม่ซึ่งอาจเป็นวิธีแก้ปัญหาที่ดีกว่าการใช้ออบเจ็กต์ JS ดั้งเดิม