2012-07-04 10 views
8

Multimap एक डेटा संरचना है जो एक सूची/मूल्यों के सेट के लिए एक कुंजी को मैप करती है।क्या मल्टीमैप डेटा संरचना के बराबर जावास्क्रिप्ट है?

क्या कोई अच्छी, अविभाज्य जेएस लाइब्रेरी है जो इस डेटा संरचना को लागू करती है?

संपादित - मुझे पता है कि मैं इसे "आसानी से" अपने आप को लागू कर सकते हैं, लेकिन मेरा मानना ​​है कि एक स्टैंडअलोन अमूर्त रूप में यह हो रही है, एक अच्छी बात है तो यह सवालों के जवाब नहीं होना चाहिए "बस यह अपने आप को लागू"।

+5

ऑब्जेक्ट जिसमें मानों के रूप में सरणी है? – Esailija

+0

+ [अंडरस्कोर.जेएस] में टॉस करें (http://underscorejs.org/), और आप जाने के लिए अच्छे हैं! – Svend

+0

@Esailija, जावा में आप 'मानचित्र <कुंजी, सूची >' का उपयोग कर सकते हैं, लेकिन किसी ने स्पष्ट रूप से सोचा कि मल्टीमैप जावा में कोड करने के लिए पर्याप्त महत्वपूर्ण है। जेएस क्यों नहीं? http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/Multimap.html – ripper234

उत्तर

2

चूंकि @Esailija ने इसे केवल एक टिप्पणी के रूप में पोस्ट किया है, इसलिए मैं इसे एक संभावित उत्तर के रूप में सबमिट करूंगा। मानों के रूप में सरणी का उपयोग करने वाले ऑब्जेक्ट्स जाने का तरीका है, और Underscore.js के माध्यम से मानों का उपयोग करना है।

var map = { 
    foo: [1, 2, 3], 
    bar: ['1', '2', '3'] 
}; 

map.foo = _.union(map.foo, [1, 4]); // map.foo -> [1, 2, 3, 4] 

हालांकि यह स्पष्ट रूप से अपनी आवश्यकताओं पर निर्भर करता है, इस दृष्टिकोण आप सामान्य डेटा संरचनाओं कि हर जगह चला जाता है, और एक पुस्तकालय है कि संग्रह और सूचियों के साथ बहुत अच्छी तरह से काम करता है देता है। अधिकांश उद्देश्यों के लिए, इस दृष्टिकोण का प्रदर्शन ठीक होना चाहिए (बस इसे प्रति सेकंड लाखों बार मत करो)।

+0

मेरी टिप्पणी देखें: एक सूची और एक ऐरे का उपयोग करके इसे लागू करने की क्षमता एक बहाना नहीं है कि "जाने-माने" मल्टीमैप क्लास न हो। निश्चित रूप से, मैं इसे स्क्रैच से लिखने के बजाय इसका उपयोग कर सकता हूं, लेकिन अगर एक लाइब्रेरी जो मैं पहले से ही उपयोग कर रहा था (उदा। JQuery) में एक मल्टीमैप क्लास था, तो मैं इसके बजाय सरणी के साथ खेलने के बजाए इसका उपयोग करूंगा। – ripper234

संबंधित मुद्दे