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

जावास्क्रिप्ट Map बनाम Object - क्या और कब?

MDN डॉक्स के अनुसार,

Map ऑब्जेक्ट की-वैल्यू पेयर्स रखता है और कीज के मूल इंसर्शन ऑर्डर को याद रखता है। कोई भी मान (ऑब्जेक्ट्स और प्रिमिटिव दोनों) का उपयोग की या वैल्यू के रूप में किया जा सकता है।

यहां ध्यान देने वाली महत्वपूर्ण बात यह है कि ऑब्जेक्ट्स को भी मैप्स में कीज के रूप में उपयोग किया जा सकता है। यह जावास्क्रिप्ट ऑब्जेक्ट्स के साथ संभव नहीं है। JS ऑब्जेक्ट्स केवल प्रिमिटिव्स को कीज के रूप में अनुमति देते हैं।

एक और फीचर जो इसे कुछ परिदृश्यों में उपयोगी बनाता है वह यह है कि यह इटरेबल है। और यह इंसर्शन ऑर्डर में इटरेबल है। इसलिए जिन मामलों में आपको कीज के ऑर्डर को बनाए रखने के साथ-साथ उससे जुड़ा वैल्यू भी चाहिए, वहां मैप का उपयोग किया जा सकता है।

उदाहरण

const myMap = new Map();
const keyString = 'a string';
const keyObj = {};
const keyFunc = function() {};

// सभी प्रकार की कीज के साथ वैल्यू सेट करना
myMap.set(keyString, "String Val");
myMap.set(keyObj, 'Object val');
myMap.set(keyFunc, 'function val');

console.log(myMap.size);           // 3
console.log(myMap.get(keyString)); // "String Val"

// इटरेबल - इंसर्शन ऑर्डर में
for (const [key, value] of myMap) {
  console.log(key, value);
}

आउटपुट

3
String Val

Map vs Object - तुलना तालिका

फीचर Map Object
की टाइप्स कोई भी (ऑब्जेक्ट्स, फंक्शन्स, प्रिमिटिव्स) केवल स्ट्रिंग्स/सिम्बल्स
ऑर्डर इंसर्शन ऑर्डर गारंटीड ES2015+ में गारंटीड (अधिकांशतः)
आकार .size प्रॉपर्टी Object.keys(obj).length
इटरेबल सीधे इटरेबल Object.entries() की आवश्यकता
डिफॉल्ट कीज कोई नहीं प्रोटोटाइप से इनहेरिटेड
प्रदर्शन फ्रीक्वेंट एड/डिलीट के लिए बेहतर स्टेटिक डेटा के लिए बेहतर

कब उपयोग करें

  • Map: फ्रीक्वेंट एड/रिमूव, ऑब्जेक्ट कीज, ऑर्डर महत्वपूर्ण, अज्ञात कीज
  • Object: स्टेटिक स्ट्रक्चर, JSON सीरियलाइज़ेशन, सिंपल की-वैल्यू
  1. जावास्क्रिप्ट में Map ऑब्जेक्ट जावास्क्रिप्ट में Map ऑब्जेक्ट

    Map ऑब्जेक्ट को ES6 में पेश किया गया था और यह एलिमेंट्स का एक संग्रह है जो की और वैल्यू पेयर होते हैं। एक मैप में की या वैल्यू एक ऑब्जेक्ट या प्रिमिटिव वैल्यू हो सकती है। जावास्क्रिप्ट में मैप ऑब्जेक्ट के लिए कोड निम्नलिखित है: उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta

  1. जावास्क्रिप्ट में Object.keys().map() बनाम Array.map() जावास्क्रिप्ट में Object.keys().map() बनाम Array.map()

    जावास्क्रिप्ट में Object.keys().map() और Array.map() दिखाने का कोड निम्नलिखित है - उदाहरण <!DOCTYPE html> <html lang=en> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document</title> <style>

  1. - JavaScript में ऑब्जेक्ट की लेंथ 0 सेट करने पर क्या होता है?

    मान लीजिए निम्नलिखित हमारा ऐरे ऑब्जेक्ट है: var arrayObject = [ John, David, Mike ] आप लेंथ प्रॉपर्टी का उपयोग करके लेंथ को 0 सेट कर सकते हैं और मेमोरी क्लियर कर सकते हैं। मेमोरी क्लियर करने का सिंटैक्स इस प्रकार है: yourArrayObjectName.length=0; // To clear memory y