जबकि सूचियाँ डेटा संग्रहीत करने का एक उपयोगी तरीका हैं, वे तब असुविधाजनक होती हैं जब आप सूची में किसी विशिष्ट ऑब्जेक्ट के बारे में कई प्रॉपर्टीज़ संग्रहीत करना चाहते हैं। उदाहरण के लिए, यदि आप कुकी स्टोर पर बेची जाने वाली सभी कुकीज़ पर डेटा संग्रहीत करना चाहते हैं, तो आपको डेटा संग्रहीत करने के लिए कई सूचियाँ बनाने की आवश्यकता होगी।
यहीं पर ऑब्जेक्ट्स काम आते हैं। ऑब्जेक्ट्स आपको डेटा को नाम:मान जोड़े में संग्रहीत करने की अनुमति देते हैं, जिसका अर्थ है कि आप अपने एप्लिकेशन में संग्रहीत डेटा पर लेबल जोड़ सकते हैं।
इस गाइड में, हम चर्चा करने जा रहे हैं कि ऑब्जेक्ट्स क्या हैं और आप उन्हें अपने कोड में कैसे उपयोग कर सकते हैं। हम JavaScript प्रोग्रामिंग भाषा में ऑब्जेक्ट्स बनाने, संशोधित करने और हटाने के बारे में बात करेंगे।
ऑब्जेक्ट क्या है?
ऑब्जेक्ट JavaScript में एक डेटा प्रकार है। यह शून्य या अधिक नामों और मानों से बना होता है, जो एक साथ जोड़े जाते हैं। प्रत्येक नाम मान के लिए लेबल के रूप में कार्य करता है। इसका मतलब है कि यदि आप किसी ऑब्जेक्ट में किसी विशेष मान तक पहुंचना चाहते हैं, तो आपको बस उसके लेबल को संदर्भित करना होगा। नामों को कभी-कभी "कीज़" कहा जाता है।
मान किसी भी प्रकार का डेटा हो सकता है, चाहे वह स्ट्रिंग हो, नंबर हो, या दूसरा ऑब्जेक्ट हो। मान प्रॉपर्टीज़ और मेथड्स भी रख सकते हैं, जो किसी विशेष ऑब्जेक्ट पर लागू होने वाले फंक्शन्स हैं।
कीज़ और मानों को JS ऑब्जेक्ट में key:value जोड़ी बनाने के लिए मैप किया जाता है।
JavaScript ऑब्जेक्ट्स वह अवधारणा है जिस पर JSON (जो JavaScript Object Notation के लिए खड़ा है) बनाया गया था। जबकि JSON JavaScript से थोड़ा अलग है, ये दोनों डेटा संरचनाएँ डेटा संग्रहीत करने के लिए नाम:मान जोड़ी दृष्टिकोण का उपयोग करती हैं।
ऑब्जेक्ट कैसे बनाएं
ऑब्जेक्ट बनाने के दो तरीके हैं। आप ऑब्जेक्ट कंस्ट्रक्टर दृष्टिकोण का उपयोग कर सकते हैं या ऑब्जेक्ट लिटरल घोषित कर सकते हैं।
ऑब्जेक्ट कंस्ट्रक्टर नया ऑब्जेक्ट बनाने के लिए "new" कीवर्ड का उपयोग करता है:
const cookie = new Object();
यह एक खाली ऑब्जेक्ट बनाता है जिसमें हम मान जोड़ सकते हैं। हम ऑब्जेक्ट लिटरल का उपयोग करके भी ऑब्जेक्ट घोषित कर सकते हैं, जो केवल कर्ली ब्रैकेट्स का एक सेट है:
const cookie = {};
इन दोनों उदाहरणों में हमने एक खाली ऑब्जेक्ट बनाया है। आप JavaScript एप्लिकेशन्स में इन मेथड्स का परस्पर उपयोग पाएंगे। ऑब्जेक्ट लिटरल विधि शायद इसकी सादगी के कारण अधिक आम है; आपको केवल कर्ली ब्रैकेट्स का एक सेट बनाना है।
डेटा के साथ ऑब्जेक्ट बनाने के लिए, हम ऑब्जेक्ट लिटरल सिंटैक्स का उपयोग कर सकते हैं:
const raspberry_white_choc = {
name: "Raspberry White Chocolate Chip",
price: 1.50,
available: true,
stock: 42
}
इस ऑब्जेक्ट में चार नाम और मान हैं। उदाहरण के लिए, लेबल "price" फ्लोटिंग-पॉइंट नंबर 1.50 से जुड़ा हुआ है। लेबल "available" बूलियन मान "true" से जुड़ा हुआ है।
ऑब्जेक्ट कैसे पढ़ें
अब तक हमने चर्चा की है कि ऑब्जेक्ट कैसे बनाएं, लेकिन ऑब्जेक्ट ज्यादा उपयोगी नहीं है यदि आप इसकी सामग्री तक नहीं पहुंच सकते। ऑब्जेक्ट की सामग्री पढ़ने के दो तरीके हैं। आप या तो डॉट नोटेशन (.) या ब्रैकेट नोटेशन ([]) का उपयोग कर सकते हैं।
मान लीजिए हम अपने चॉकलेट चिप कुकी का नाम पुनर्प्राप्त करना चाहते हैं। हम ऐसा इस कोड का उपयोग करके कर सकते हैं:
console.log(raspberry_white_choc.name);
यह कोड लौटाता है: Raspberry White Chocolate Chip। हमारे उदाहरण में, हमने अपने ऑब्जेक्ट के नाम - "raspberry_white_choc" - को संदर्भित किया है, उसके बाद एक डॉट, फिर उस प्रॉपर्टी का नाम जिसका मान हम पुनर्प्राप्त करना चाहते हैं। यही कारण है कि इसे डॉट नोटेशन कहा जाता है। ऑब्जेक्ट और प्रॉपर्टी नाम के बीच एक डॉट है।
आप ऑब्जेक्ट पढ़ने के लिए ब्रैकेट नोटेशन का भी उपयोग कर सकते हैं:
console.log(raspberry_white_choc["available"]);
हमारा कोड लौटाता है: true। ब्रैकेट नोटेशन वह है जहां आप ऑब्जेक्ट का नाम निर्दिष्ट करते हैं, फिर उस मान का नाम जिसे आप पुनर्प्राप्त करना चाहते हैं। जिस मान का नाम आप पुनर्प्राप्त करना चाहते हैं वह कोटेशन मार्क्स में संलग्न होना चाहिए, फिर स्क्वायर ब्रैकेट्स।
ऑब्जेक्ट कैसे संशोधित करें
ऐसे तीन संभावित तरीके हैं जिनसे आप ऑब्जेक्ट को संशोधित कर सकते हैं:
- ऑब्जेक्ट में आइटम्स जोड़ें
- मौजूदा ऑब्जेक्ट आइटम्स संशोधित करें
- ऑब्जेक्ट से आइटम्स हटाएं
आइए इन्हें एक-एक करके चर्चा करें, हमारे पहले के कुकी उदाहरण के संदर्भ में।
ऑब्जेक्ट में आइटम्स जोड़ें
सूचियों के विपरीत, कोई push() या append() फंक्शन नहीं है जिसका उपयोग आप ऑब्जेक्ट में मान जोड़ने के लिए कर सकते हैं। आपको बस असाइनमेंट ऑपरेटर का उपयोग करके प्रॉपर्टी को नया मान असाइन करना है।
मान लीजिए हम अपने ऑब्जेक्ट में "gluten_free" मान जोड़ना चाहते हैं। हम निम्नलिखित में से किसी भी स्टेटमेंट का उपयोग करके ऐसा कर सकते हैं:
// ब्रैकेट नोटेशन का उपयोग करके raspberry_white_choc["gluten_free"] = false; console.log(raspberry_white_choc.gluten_free); // डॉट नोटेशन का उपयोग करके raspberry_white_choc.gluten_free = false; console.log(raspberry_white_choc.gluten_free);
हमारा कोड लौटाता है:
false false
इन दोनों उदाहरणों में, हमने अपने ऑब्जेक्ट में "gluten_free" नामक एक नया आइटम बनाया है। हमने इस आइटम को मान "false" असाइन किया है।
मौजूदा ऑब्जेक्ट आइटम्स संशोधित करें
ऑब्जेक्ट की सामग्री बदलना ऑब्जेक्ट को नए मान असाइन करने के समान तरीके से काम करता है। दोनों मेथड्स ऑब्जेक्ट को संशोधित करने के लिए असाइनमेंट ऑपरेटर का उपयोग करते हैं।
मान लीजिए हमने अपने रास्पबेरी व्हाइट चॉकलेट चिप कुकी की रेसिपी बदल दी है और अब यह ग्लूटेन-फ्री है। हम अपने ऑब्जेक्ट में "gluten_free" आइटम को इस कोड का उपयोग करके बदल सकते हैं:
raspberry_white_choc.gluten_free = true; console.log(raspberry_white_choc.gluten_free);
हमारा कोड लौटाता है: true। यदि आप चाहें तो ऐसा परिवर्तन करने के लिए ब्रैकेट नोटेशन का भी उपयोग कर सकते हैं।
ऑब्जेक्ट से आइटम्स हटाएं
"delete" कीवर्ड आपको ऑब्जेक्ट से प्रॉपर्टी हटाने की अनुमति देता है। निम्न कोड हमें अपने ऑब्जेक्ट से "gluten_free" प्रॉपर्टी हटाने की अनुमति देता है:
delete raspberry_white_choc.gluten_free; console.log(raspberry_white_choc);
हमारा कोड लौटाता है:
{ available: true, name: "Raspberry White Chocolate Chip", price: 1.5, stock: 42 }
जैसा कि आप देख सकते हैं, नाम "gluten_free" अब हमारे ऑब्जेक्ट में मौजूद नहीं है। ऐसा इसलिए है क्योंकि हमने इसे हटाने के लिए delete कीवर्ड का उपयोग किया था।
निष्कर्ष
JavaScript ऑब्जेक्ट संरचना संबंधित डेटा संग्रहीत करना आसान बनाती है। इस लेख में, हमने बात की कि कैसे एक ऑब्जेक्ट कुकी स्टोर के लिए कुकी पर जानकारी संग्रहीत कर सकता है। हम उपयोगकर्ता खातों, बेकरी में रेसिपीज़ या कैलेंडर इंगेजमेंट्स को संग्रहीत करने के लिए ऑब्जेक्ट का उपयोग भी कर सकते थे।