在JavaScript中设置和获取地图中的值

时间:2018-04-19 15:53:44

标签: javascript

我一直在搜索如何使用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);

鉴于示例在Google Chrome中看起来并不相同,即: enter image description here

总的来说,这对我来说真的很困惑,因为我不确定应该采用哪种方式。

我已经习惯了myMap['key'] = 'value';,因为这是它在Golang中的作用。

另外,我已经找到了myMap.set('key', 'value');使用方式的更多解决方案。

1 个答案:

答案 0 :(得分:3)

Map有两个不同的存储区域:

  1. 对象的属性(所有对象都有)
  2. Map
  3. 的条目

    使用myMap['key'] = 'value'时,您将分配属性。当您使用myMap.set('key', 'value')时,您将分配条目。

    Map的条目是特殊的,因为它们不需要键是字符串,并且因为它们与对象属性分开存储,所以您不必担心任何名称冲突toStringvalueOf等属性。

    Map.prototype.set是在Map中设置条目的首选方式,因为它使用了Map的功能。否则,如果您只是分配给对象的属性,那么您也可以使用普通对象。