Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Javascript

जावास्क्रिप्ट ऑब्जेक्ट में गुणों की संख्या की गणना कैसे करें

जावास्क्रिप्ट ऑब्जेक्ट में दो अलग-अलग तरीकों से गुणों की संख्या की गणना करना सीखें।

JavaScript ऑब्जेक्ट गुणों की संख्या की गणना करने के लिए, आप या तो इसका उपयोग कर सकते हैं:

  • एक for लूप
  • या Object.keys() विधि।

आइए उन दोनों को एक्सप्लोर करें!

एक लूप के साथ ऑब्जेक्ट गुणों की गणना करें

यहाँ एक JavaScript ऑब्जेक्ट है जिसे dog कहा जाता है :

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

dog . में ऑब्जेक्ट प्रॉपर्टी की संख्या गिनने के लिए , आइए पहले count . नामक एक वेरिएबल घोषित करें और इसे 0 . का प्रारंभ मान दें :

let count = 0

अब हमें dog . के माध्यम से लूप करने की आवश्यकता है ऑब्जेक्ट और हमारे सामने आने वाली प्रत्येक संपत्ति के लिए हम count . में एक (+ 1) जोड़ते हैं चर:

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

अब console.log() . का उपयोग करके परिणाम को प्रिंट करने का प्रयास करें :

console.log(count)
// Result: 4

अगर आपने कोड सही लिखा है, तो आपको 4 . मिलना चाहिए ।

ऑब्जेक्ट.कीज के साथ ऑब्जेक्ट गुणों की गणना करें()

आप JavaScript के Object.keys() . का भी उपयोग कर सकते हैं सभी गणनीय . को गिनने की विधि गुण (उसके बारे में एक सेकंड में) एक वस्तु पर।

आइए 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

जैसा कि आप देख सकते हैं, परिणाम वही है। या है?

हां और ना। यह संदर्भ पर निर्भर करता है।

बनाम Object.keys()

के लिए

for . का उपयोग करने के बीच अंतर लूप और Object.keys() है:

  • for लूप वस्तु के दोनों गुणों को गिनता है (यहाँ, dog ) और कोई भी गुण जो इसके बाहर की वस्तु से जुड़ा हो सकता है।
  • डिफ़ॉल्ट रूप से, Object.keys() विधि केवल वस्तु की (स्वयं की) गणना गुणों की गणना (गणना) करती है - लिंक किए गए गुण नहीं।

गणना गिनती . के लिए एक और शब्द है

"लिंक की गई प्रॉपर्टी" से मेरा क्या मतलब है?

चलिए वही लेते हैं Object.keys() पहले से उदाहरण, लेकिन इस बार हम लिंक 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() का उपयोग करें यदि आप केवल गणना योग्य गुणों (वस्तु का अपना) गिनना चाहते हैं।

  1. जावास्क्रिप्ट में ऑब्जेक्ट गुणों को कैसे हटाएं?

    जावास्क्रिप्ट में ऑब्जेक्ट गुणों को हटाने के लिए कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Do

  1. सी # सूची में वस्तुओं की संख्या की गणना कैसे करें?

    C# में किसी सूची में आइटम्स की संख्या गिनने के लिए Array.Count प्रॉपर्टी का उपयोग करें C# - सूची सेट करें List<string> myList = new List<string>() {    "electronics",    "clothing",    "appliances",    "accessori

  1. जावास्क्रिप्ट में किसी वस्तु का मान कैसे प्राप्त करें?

    कुछ विधियाँ हैं जैसे Object.values() किसी वस्तु का मान प्राप्त करने के लिए। लेकिन उन विधियों के माध्यम से, मूल्यों का पता लगाने की प्रक्रिया लंबी है। इसे कम करने के लिए, अंडरस्कोर.जेएस जावास्क्रिप्ट की एक लाइब्रेरी ने _.values() . नामक एक विधि प्रदान की है . मूल्यों को निष्पादित करने के लिए इस विधि