มีสองวิธีในการค้นหาว่ามีคีย์อยู่ในวัตถุ javascript หรือไม่
สมมติว่าเรามีวัตถุ 'พนักงาน' ดังที่แสดงด้านล่าง
var employee = { name: "Ranjan", age: 25 }
ตอนนี้เราต้องตรวจสอบว่าคุณสมบัติ 'ชื่อ' มีอยู่ในวัตถุของพนักงานหรือไม่
1) โอเปอเรเตอร์ 'In'
เราสามารถใช้ตัวดำเนินการ 'in' บนวัตถุเพื่อตรวจสอบคุณสมบัติของมัน ตัวดำเนินการ 'in' ยังดูเกี่ยวกับคุณสมบัติที่สืบทอดมา หากไม่พบคุณสมบัติที่แท้จริงของวัตถุ
ในตัวอย่างต่อไปนี้ เมื่อตรวจสอบว่า 'toString' มีหรือไม่ ตัวดำเนินการ 'in' จะพิจารณาคุณสมบัติของวัตถุ เมื่อยืนยันว่าไม่มีอยู่ ก็มาถึงคุณสมบัติพื้นฐานของวัตถุ เนื่องจาก 'toString' เป็นคุณสมบัติพื้นฐานจึงแสดง 'จริง' ตามที่แสดงในผลลัพธ์
ตัวอย่าง
<html> <body> <script> var employee = { name: "Ranjan", age: 25 } document.write("name" in employee); document.write("</br>"); document.write("salary" in employee); document.write("</br>"); document.write("toString" in employee); </script> </body> </html>
ผลลัพธ์
true false true
2) hasOwnProperty()
เมธอดนี้จะพิจารณาผ่านอ็อบเจ็กต์สำหรับคุณสมบัติจริงเท่านั้น แต่จะไม่พิจารณาคุณสมบัติที่สืบทอดมาใดๆ หากมีคุณสมบัติจริง เมธอดนี้จะแสดงค่าจริงหรือเท็จตามความพร้อมใช้งาน
ในตัวอย่างต่อไปนี้ เรายังค้นหาคุณสมบัติที่สืบทอดมา เช่น 'toString' เพื่อให้แสดงเป็นเท็จตามที่แสดงในผลลัพธ์
ตัวอย่าง
<html> <body> <script> var employee = { name: "Ranjan", age: 25 } document.write(employee.hasOwnProperty('toString')); document.write("</br>"); document.write(employee.hasOwnProperty('name')); document.write("</br>"); document.write(employee.hasOwnProperty('salary')); </script> </body> </html>
ผลลัพธ์
false true false