2016-02-26 6 views
20

ES6 के रूप में, जावास्क्रिप्ट में एक उचित मानचित्र वस्तु है। मुझे एक शाब्दिक नोटेशन का उपयोग करने का कोई तरीका नहीं दिख रहा है, जैसा कि आप एक ऐरे या ऑब्जेक्ट के साथ कर सकते हैं। क्या मैं इसे याद कर रहा हूं, या यह अस्तित्व में नहीं है?क्या जावास्क्रिप्ट में नक्शा शाब्दिक संकेत है?

सरणी: var arr = ["Foo", "Bar"];

वस्तु: var obj = { foo: "Foo", bar: "Bar" };

नक्शा: ???

+1

संबंधित: [क्या जावास्क्रिप्ट में एक सेट शाब्दिक है?] (Http://stackoverflow.com/q/35368259/218196) –

उत्तर

21

नहीं, ईएस 6 में Map एस या Set एस के लिए एक शाब्दिक नोटेशन नहीं है।

आप एक iterable (आमतौर पर शाब्दिक शृंखला) गुजर रहा है, उनके निर्माताओं का उपयोग करना होगा:

var map = new Map([["foo", "Foo"], ["bar", "Bar"], …]); 

var set = new Set(["Foo", "Bar", …]); 

कुछ प्रस्तावों भाषा के लिए नए शाब्दिक वाक्य रचना को जोड़ने के लिए कर रहे हैं, लेकिन कोई भी ES6 में इसे बनाया है (और मुझे व्यक्तिगत रूप से विश्वास नहीं है कि वे इसे भविष्य के संस्करण में बना देंगे)।

+1

बहुत अच्छा काम किया! हालांकि, मेरे जैसे सभी लापरवाही पाठकों के लिए: सभी सर-मान सरणी को सरणी में encapsulate सुनिश्चित करें। मैं ब्रैकेट के उस अतिरिक्त सेट पर सही छोड़ दिया और एक बुरा टाइपर मिला। –

6

यह हैश मैप की तरह है - कोई शाब्दिक संस्करण नहीं है। आपको इसे परिभाषित करना होगा जैसे आप एक कन्स्ट्रक्टर करेंगे।

आप this topic पढ़ सकते हैं जो मानचित्र अक्षरों पर चर्चा करता है, और उन्हें क्यों जोड़ा जाना चाहिए। यह मूल रूप से नक्शा अक्षर पर अन्य संभावित प्रस्ताव है। मैं व्यक्तिगत रूप से ES7 में एक शाब्दिक वाक्यविन्यास को नहीं रोक सकता, क्योंकि मैप्स का उपयोग करना बहुत आसान है - लेकिन भविष्य के प्रस्तावों में सिंटैक्टिक चीनी लागू हो सकती है।

संभावित शाब्दिक अंकन का एक उदाहरण एक octothorp (हैश) का उपयोग कर की तरह कुछ देखने के लिए चर्चा की गई: वहाँ यह करने के लिए एक तरह से, है जैसे हम शाब्दिक के साथ क्या

const myMap = Map#{expression("derp"): value("herp")}; 
+0

दिलचस्प लिंक। मुझे नया वाक्यविन्यास बनाने में शामिल कुछ जटिलताओं का एहसास नहीं हुआ था। मैंने बर्गी के जवाब का चयन किया हालांकि, क्योंकि उसने पूरी तरह से मेरे प्रश्न का उत्तर दिया और आपके सामने सिर्फ एक मिनट पहले आया। हालांकि धन्यवाद! – Matt

2

const fruits = new Map(Object.entries({apples: 1, bananas: 2}))

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