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

วิธีการนับจำนวนคุณสมบัติใน JavaScript Object

เรียนรู้วิธีนับจำนวนคุณสมบัติในวัตถุ JavaScript ด้วยสองวิธีที่แตกต่างกัน

ในการนับจำนวนคุณสมบัติของวัตถุ JavaScript คุณสามารถใช้:

  • a for ห่วง
  • หรือ Object.keys() วิธีการ

มาสำรวจทั้งคู่กันเถอะ!

นับคุณสมบัติของอ็อบเจ็กต์ด้วย a for loop

นี่คือวัตถุ JavaScript ชื่อ dog :

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

การนับจำนวนคุณสมบัติของอ็อบเจ็กต์ใน dog ก่อนอื่นเรามาประกาศตัวแปรชื่อ count และให้ค่าเริ่มต้นเป็น 0 :

let count = 0

ตอนนี้เราต้องวนซ้ำ dog วัตถุ และสำหรับแต่ละคุณสมบัติที่เราเจอ เราเพิ่มหนึ่ง (+ 1) ให้กับ count ตัวแปร:

for (let properties in dog) {
  count = count + 1
}

ตอนนี้ลองพิมพ์ผลลัพธ์โดยใช้ console.log() :

console.log(count)
// Result: 4

หากคุณเขียนโค้ดถูกต้อง คุณควรได้ 4 .

นับคุณสมบัติของวัตถุด้วย Object.keys()

คุณยังสามารถใช้ Object.keys() . ของ JavaScript วิธีการนับทั้งหมด นับได้ คุณสมบัติ (เพิ่มเติมเกี่ยวกับสิ่งนั้นในไม่กี่วินาที) บนวัตถุ

กลับมาใช้ dog . กันเถอะ จากเมื่อก่อน แต่ตอนนี้เราส่ง dog วัตถุเป็น Object.keys() และคำนวณความยาวด้วย length คุณสมบัติ:

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

let count = Object.keys(dog).length

console.log(count)
// Result: 4

อย่างที่คุณเห็นผลลัพธ์ก็เหมือนกัน หรือว่า?

ใช่และไม่. ขึ้นอยู่กับบริบท

สำหรับ vs. Object.keys()

ความแตกต่างระหว่างการใช้ for วนซ้ำและ Object.keys() คือ:

  • The for loop นับทั้งคุณสมบัติของวัตถุ (ที่นี่ dog ) และคุณสมบัติใดๆ ที่อาจเชื่อมโยงกับวัตถุภายนอกได้
  • โดยค่าเริ่มต้น Object.keys() เมธอดจะนับ (ระบุ) เฉพาะคุณสมบัติของอ็อบเจ็กต์ (ของตัวเอง) เท่านั้น ไม่ใช่คุณสมบัติที่เชื่อมโยง

การแจงนับ เป็นอีกคำหนึ่งสำหรับ การนับ

ฉันหมายถึงอะไรกับ “คุณสมบัติที่เชื่อมโยง”?

ลองใช้ Object.keys() . เดียวกัน ตัวอย่างเมื่อก่อน แต่คราวนี้เรา link dog วัตถุไปยังวัตถุที่เรียกว่า animal โดยใช้ _proto_ คุณสมบัติ:

// New object
let animal = {
  fourLegs: true,
}

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

// Link dog object to animal object
dog.__proto__ = animal

var count = Object.keys(dog).length
console.log(count)
// Result: 4

ทำไมผลลัพธ์เป็น 4 เมื่อจำนวนคุณสมบัติทั้งหมด dog และ animal คือ 5 และเราเพิ่งเชื่อมโยงพวกเขาเข้าด้วยกันและนับพวกเขาหรือไม่

เพราะเราใช้ Object.keys() ซึ่งนับเฉพาะคุณสมบัติของตัวเอง (นับได้) ไม่ใช่คุณสมบัติที่เชื่อมโยง ดังนั้น fourLegs ทรัพย์สินจาก animal วัตถุไม่ได้รับการนับในตัวอย่างข้างต้น

คราวนี้มาลองอีกตัวอย่างหนึ่ง แต่คราวนี้เราใช้ for วนซ้ำเพื่อนับคุณสมบัติ:

const animal = {
  fourLegs: true,
}

const dog = {
  name: "Naya",
  age: 2,
  color: "black",
  Breed: "Rottweiler mix",
}

// Link dog object to animal object
dog.__proto__ = animal

let count = 0

for (properties in dog) {
  count = count + 1
}

console.log(count)
// Result: 5

ตอนนี้เราได้รับพร็อพเพอร์ตี้ทั้งหมด 5 อย่างแล้ว เพราะไม่เหมือนกับ Object.keys() เมื่อเราใช้ for วนซ้ำเรานับทุก ทุก คุณสมบัติของวัตถุ รวมทั้ง เชื่อมโยง คุณสมบัติของวัตถุ

อย่างที่คุณเห็น สิ่งสำคัญคือแนวทางที่คุณใช้

โดยสรุป:

  • มีสองวิธีในการนับจำนวนคุณสมบัติในวัตถุ คุณสามารถใช้ for วนซ้ำหรือ Object.keys() วิธีการ
  • ใช้ for วนซ้ำหากคุณต้องการรวมคุณสมบัติของอ็อบเจ็กต์ที่เชื่อมโยงในการนับพร็อพเพอร์ตี้ของคุณ
  • ใช้ Object.keys() หากคุณต้องการนับคุณสมบัติที่นับได้เท่านั้น (ของวัตถุเอง)