มีหลายวิธีตรวจสอบ key ใน JavaScript object
สมมติมีออบเจ็กต์ employee ดังนี้:
var employee = {
name: "Ranjan",
age: 25
}
ต้องการตรวจสอบว่า property 'name' มีอยู่หรือไม่
1) ตัวดำเนินการ 'in'
ใช้ 'in' ตรวจสอบ property ของออบเจ็กต์ รวมถึง inherited property ด้วย
ในตัวอย่าง ตรวจสอบ 'toString' - 'in' จะตรวจ property ของออบเจ็กต์ ไม่เจอจะไปดู base property เนื่องจาก toString เป็น base property จึงคืนค่า true
ตัวอย่าง
<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()
ตรวจสอบเฉพาะ own property ของออบเจ็กต์ ไม่รวม inherited property คืนค่า true/false ตามความมีอยู่
ตัวอย่างตรวจสอบ 'toString' (inherited) คืนค่า false
ตัวอย่าง
<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