你如何获得javascript地图对象中特定索引的关键字?

Akh*_*hil 8 javascript ecmascript-6

假设我有以下地图对象

const items = new Map([['item1','A'], ['item2','B'], ['item3', 'C']])
Run Code Online (Sandbox Code Playgroud)

我想在索引2处获取密钥.除了使用for循环获取index = 2处的项的键之外,还有其他方法吗?

根据答案得到这个工作 -

Array.from(items.keys())[2]
Run Code Online (Sandbox Code Playgroud)

Ber*_*rgi 12

可能会订购地图,但不会对其编制索引.获得第n个项目的唯一方法是循环.

  • 我正在寻找一种解决方案,它允许我拥有一系列按键和值进行排序和索引...数组无法执行键和值,需要循环才能查找某个"键".物体没有被订购并变得混乱.地图未编入索引,需要循环才能获取索引.这很难过,因为我认为地图可以解决我的问题. (3认同)
  • 真可惜……这里的任何 TC39 人都想权衡为什么他们没有被索引? (2认同)

Gre*_*eso 11

要在索引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];                 // Returns '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'
Run Code Online (Sandbox Code Playgroud)

  • 如果地图很小,更简洁但效率较低的方法就是获取所有值: var val2 = Array.from(items.values())[2]; (2认同)

小智 5

const a = new Map([['1 Item', 'abc'], ['2 Item', 'def']]);
let indexVal =   [...a][1];
console.log(indexVal);
Run Code Online (Sandbox Code Playgroud)