Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

จะตรวจสอบว่ามีคีย์อยู่ในวัตถุ JavaScript หรือไม่?


มีสองวิธีในการค้นหาว่ามีคีย์อยู่ในวัตถุ 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