2015-09-03 11 views
9

पर एक मानचित्र से पहले आइटम मैं एक Map इस तरह है:जावास्क्रिप्ट ES2015

const m = new Map(); 
m.set('key1', {}) 
. 
m.set('keyN' {}) 

Map 1 या कई मदों हो सकता है। क्या मुझे m.get('key1') के बिना और इटेटरेटर लूप के बिना इंडेक्स द्वारा पहला आइटम मिल सकता है?

की तरह: m.get()[0]

+1

आप ऐसा क्यों करना चाहते हैं? मानचित्र अनियंत्रित हैं। – helpermethod

+1

असल में, मानचित्र में पहला आइटम उस व्यक्ति को प्राप्त नहीं करता है जिसे आपने पहले जोड़ा है, ताकि आप केवल पूरे मानचित्र के माध्यम से पुन: प्रयास कर सकें। मोज़िला एमडीएन से – Andrey

+4

@ एंड्रे: "एक मानचित्र सम्मिलन क्रम में अपने तत्वों को पुन: सक्रिय करता है, जबकि ऑर्डर ऑर्डर ऑब्जेक्ट्स के लिए निर्दिष्ट नहीं है।" https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Map –

उत्तर

27

इस

console.log(m.keys().next().value); // key1 

की तरह, Map.prototype.entries फ़ंक्शन का उपयोग इस

const m = new Map(); 
m.set('key1', {}) 
m.set('keyN', {}) 

console.log(m.entries().next().value); // [ 'key1', {} ] 

की तरह आप पहली कुंजी पाने के लिए चाहते हैं, तो Map.prototype.keys उपयोग करते हैं,

इसी तरह जब आप पहली बार लाभ प्राप्त करना चाहते हैं, तो आपको Map.prototype.values उपयोग कर सकते हैं, इस

console.log(m.values().next().value); // {} 

कारण की तरह कारण है कि हम वापस आ मूल्यों पर next() कॉल करने के लिए है कि, उन सभी कार्यों लौट iterators है । पुनरावृत्ति प्रोटोकॉल here के बारे में और पढ़ें।

+2

ओपी का उपयोग करने वाले किसी भी कारण से आपने 'कुंजी' कुंजी को बदल दिया है? – Bergi

5

विशिष्ट उदाहरण के लिए आप सोच रहे हैं, विनाशकारी सही होगा।

let m = new Map(); 
m.set('key1', {}); 
m.set('key2', {}); 

let [[, obj]] = m; 

उदा।

let [pair] = m; 
let [key, obj] = pair; 

destructure के लिए और फिर हड़पने मूल्य एक विकल्प है, लेकिन आसान विकल्प

let [obj] = m.values(); 
+0

शायद '[obj,] = 'अधिक स्पष्ट है – Bergi

1

भी होगा, कि दोनों Set और Map के लिए सही है: आप Array और उसके बाद के लिए कुछ भी परिवर्तित कर सकते हैं इसके सूचकांक द्वारा कोई तत्व प्राप्त करें। कुछ ऐसा:

let m = new Map(); 
m.set('key1', {}); 
m.set('key2', {}); 

Array.from(m)[0]; // ['key1', {}] 
संबंधित मुद्दे