地图集合中的两个键?

时间:2017-11-29 00:36:59

标签: javascript dictionary collections key

如果我在任何控制台中运行下面的代码,我们可以看到有一个键(下面显示的示例中为0,1,2),我无法理解为什么。

似乎我们有两个键:这个自动生成的键和您手动设置的键(在示例中。< key>:1,< key>:2,< key&gt ;:true)

我想知道它为什么。

let mapTesting = new Map([
    [1, 'String'],
    [2, 123],
    [true, 'Testing']
]);
console.log(mapTesting)

//Output:
Map
  size: 3
  <entries>
    0: 1 → "String"
        <key>: 1
        <value>: "String"
    1: 2 → 123
        <key>: 2
        <value>: 123
    2: true → "Testing"
        <key>: true
        <value>: "Testing"
  __proto__: Object { … }

1 个答案:

答案 0 :(得分:0)

因为Map有一组键(如hashmap),但也可以用作迭代器(forEach,entries)。因此,键的顺序非常重要。

following说明声明:

  

Map对象以插入顺序迭代其元素 - a for ... of   loop为每次迭代返回一个[key,value]数组。

0,1,2,..表示顺序(添加键/值的顺序)。然后显示键和值:

var mapTesting = new Map([
    ["one", 'String'],
    ["two", 123],
    ["three", 'Testing']
]);
mapTesting.set("another","value");
console.log(Array.from(mapTesting.keys()));

这显示了一个数值为&#34; one&#34;在索引0处,因为它首先被添加,然后是值&#34;两个&#34;在索引1 ...