我一直在搜索如何使用new Map();
以及如何将值从两者分配给对象或返回对象。
我在MDN webdocs上找到了new Map();
的用法:
let myMap = new Map();
myMap.set('key', 'value');
console.log(myMap.get('key'))
我在其中一个帖子中找到了它也可以如下使用:
let myMap = new Map();
myMap['key'] = 'value';
console.log(myMap['key']);
之前我使用过myMap['key']
new Map()
方式,但是当我试图返回地图时,它似乎有所不同。
这是显示两者之间差异的示例:
let myMap0 = new Map();
let myMap1 = new Map();
myMap0.set('key','value');
myMap1['key'] = 'value';
console.log(myMap0);
console.log(myMap1);
总的来说,这对我来说真的很困惑,因为我不确定应该采用哪种方式。
我已经习惯了myMap['key'] = 'value';
,因为这是它在Golang中的作用。
另外,我已经找到了myMap.set('key', 'value');
使用方式的更多解决方案。
答案 0 :(得分:3)
Map
有两个不同的存储区域:
Map
使用myMap['key'] = 'value'
时,您将分配属性。当您使用myMap.set('key', 'value')
时,您将分配条目。
Map
的条目是特殊的,因为它们不需要键是字符串,并且因为它们与对象属性分开存储,所以您不必担心任何名称冲突toString
或valueOf
等属性。
Map.prototype.set
是在Map
中设置条目的首选方式,因为它使用了Map
的功能。否则,如果您只是分配给对象的属性,那么您也可以使用普通对象。