2016-06-14 1 views
1

Предположим, у меня есть следующий объект на картеКак вы получаете ключ от индекса index в объекте карты javascript?

const items = new Map([['item1','A'], ['item2','B'], ['item3', 'C']]) 

Я хочу получать ключ с индексом 2. Есть ли способ, кроме использования для цикла, чтобы получить ключ пункта по индексу = 2?

Получил эту работу в соответствии с ответом -

Array.from(items.keys())[2] 
+0

связаны: [? Как получить последний элемент ES6 карты без итераций] (http://stackoverflow.com/q/30921283/1048572) – Bergi

+1

Почему бы не использовать массив для этой цели? –

+0

'Array.from (items.keys()) [2]' идентичен '[... items.keys()] [2]', оба распределяют полный массив ключей. Если вы хотите этого избежать, см. Http://stackoverflow.com/questions/30410359/how-to-get-the-nth-value-of-a-javascript-generator –

ответ

5

Карты могут быть заказаны, но они не индексируются. Единственный способ получить n-й элемент - это цикл.

0

К ключу с индексом 2, выполните следующие действия:

// Your map 
var items = new Map([['item1','A'], ['item2','B'], ['item3', 'C']]); 

// The key at index 2 
var key = Array.from(items.keys())[2];     // return 'item3' 

// The value of the item at index 2 
var val1 = items.get(key);        // Returns 'C' 
// ... or ... 
var val2 = items.get(Array.from(items.keys())[2]);  // Returns 'C'