如果我在任何控制台中运行下面的代码,我们可以看到有一个键(下面显示的示例中为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 { … }
答案 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 ...