जावास्क्रिप्ट ऑब्जेक्ट में दो अलग-अलग तरीकों से गुणों की संख्या की गणना करना सीखें।
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()
का उपयोग करें यदि आप केवल गणना योग्य गुणों (वस्तु का अपना) गिनना चाहते हैं।