2011-03-23 13 views
49

क्या JQuery Dictionaries (कुंजी, मान) संग्रह का समर्थन करता है?क्या JQuery समर्थन शब्दकोश (कुंजी, मान) संग्रह करता है?

मैं, जोड़ने के लिए देखने, हटाने और अपडेट की क्षमता के साथ एक संरचना

[1, false] 
[2, true] 
[3, false] 

में निम्न डेटा सेट करना चाहते हैं।

कोई मदद!

+0

क्या जावास्क्रिप्ट का साहचर्य सरणी के साथ गलत क्या है:

बस एक वस्तु का उपयोग करें? – kennytm

+0

जबकि जावास्क्रिप्ट एक शब्दकोश-प्रकार के संग्रह का समर्थन करता है, क्यों न केवल मानों को एक सरणी में संग्रहीत करें क्योंकि आपकी कुंजी संख्यात्मक हैं? – kevmo314

+0

क्या आपको डेटा को डीओएम तत्व या सामान्य रूप से स्टोर करने की आवश्यकता है। आप एक साधारण जावास्क्रिप्ट ऑब्जेक्ट का उपयोग क्यों नहीं कर सकते हैं। अगर डेटा को विशेष डीओएम तत्वों के संबंध में संग्रहीत करने की आवश्यकता है तो आप http: // api देख सकते हैं। jquery.com/jQuery.data/ – frictionlesspulley

उत्तर

101

नहीं, jQuery नहीं करता है, लेकिन जावास्क्रिप्ट करता है।

var dict = { 
    "1" : false, 
    "2" : true, 
    "3" : false 
}; 

// lookup: 
var second = dict["2"]; 
// update: 
dict["2"] = false; 
// add: 
dict["4"] = true; 
// delete: 
delete dict["2"]; 
+0

बहुत बहुत धन्यवाद। छोटा सवाल: क्या मैं इसे बिना किसी मूल्य के प्रारंभ कर सकता हूं? – Homam

+4

@ जॉन: हाँ, बस मानों को छोड़ दें: 'var dict = {}; '। –

+0

आपको 'नक्शा' शामिल करने के उत्तर को अपडेट करने के बारे में सोचना चाहिए - भविष्य के लिए वास्तव में सहायक होगा। (भले ही ऐसे उत्तरों को सत्य का एक बिंदु नहीं बनना चाहिए, उर्फ ​​मैनुअल) –

2

हाँ, आप ऐसा करने के लिए वस्तु का उपयोग कर सकते हैं:

var myDict = { 1:false , 2:true , 3:false }; 
+0

पहले से मौजूद कुंजी के लिए 'dict' में एक नई प्रविष्टि जोड़ने के लिए वाक्यविन्यास क्या होगा?ध्यान में रखते हुए मैं '2" जोड़ना चाहता हूं: "झूठा" '' var dict = {"1": false, "2": सत्य, "3": झूठा}; ' – user1928158

2

आप, अलग वर्गों शब्दकोश की जरूरत नहीं है के बाद से जावास्क्रिप्ट शब्दकोशों के रूप में कार्य वस्तुओं। कोई http://msdn.microsoft.com/en-us/magazine/cc163419.aspx

5

jQuery,: इस देखें:

var userObject = {}; // equivalent to new Object() 
userObject["lastLoginTime"] = new Date(); 
alert(userObject["lastLoginTime"]); 

पूर्ण यहाँ लेख। लेकिन जावास्क्रिप्ट करता है। जावास्क्रिप्ट में केवल दो संरचनाएं हैं, arrays और objects

वस्तुओं शब्दकोश, जहां गुण "कुंजी" के रूप में इस्तेमाल किया जा सकता:

var dict = { 
    1: true, 
    2: true, 
    3: false 
}; 

वस्तुओं के गुण या तो, डॉट नोटेशन साथ पहुँचा जा सकता obj.property (यदि संपत्ति नाम एक वैध पहचानकर्ता है, जो उपर्युक्त उपयोग के रूप में एक अंक नहीं है) या सरणी पहुंच नोटेशन के साथ, obj['property']

+0

आपको कंसोल के बाद से नहीं लगता है। लॉग (dict.1) 'लिखना असंभव है, यह बहुत भ्रमित है, espacially मामलों पर:' var foo = {3: true, 2: true, 1: false}; console.log (foo [1]); ' –

+0

@CasparKleijne: वास्तव में सुनिश्चित नहीं है * क्या * आपको लगता है कि भ्रमित है। तुम्हारा मतलब है कि यह एक सरणी के साथ उलझन में हो सकता है? इमो को हमेशा यह पता होना चाहिए कि कौन सी डेटा संरचना से निपट रहा है। –

+0

पहले से मौजूद कुंजी के लिए 'dict' में एक नई प्रविष्टि जोड़ने के लिए वाक्यविन्यास क्या होगा? ध्यान में रखते हुए मैं '2" जोड़ना चाहता हूं: "झूठा" '' var dict = {"1": false, "2": सत्य, "3": झूठा}; ' – user1928158

3
शुद्ध जावास्क्रिप्ट के साथ

,

var myDictionary = new Object(); 
myDictionary[1] = false; 
myDictionary[2] = true; 
myDictionary[3] = false; 

function look(i) { return myDictionary[i];} 
look(1); // will return false 
संबंधित मुद्दे