javascript - 在 Javascript 中的地图中获取和设置值
问题描述
我试图获取和设置地图的值,比如 JavaScript 中的对象。我成功地做到了这一点。我仍然怀疑这是否是正确的方法,还是我的代码会在任何时候中断?
m = new Map();
Map {}
> m.set('a', 1) //set value
Map { 'a' => 1 }
> m.get('a') //get it
1
> m['b'] = 2 //try using more convenient [] notation
2
> m['b'] //it works!
2
虽然这适用于这个特定场景或其他场景,但是否存在使用 m['b'] 获取地图会失败的场景?
解决方案
他们不一样。当您使用括号表示法(或点表示法)而不是.set
and.get
时,您使用的是Map
作为普通对象,而不是Map
. 例如,如果您稍后尝试使用 访问b
,m.get
它将不起作用,因为b
它不是map 中的键,而是对象的属性m
:
const m = new Map();
m.set('a', 1) //set value
m['b'] = 2 //try using more convenient [] notation
m['b'] //it works!
console.log(m.get('b')) // ...or not
您可以使用 aMap
作为这样的对象,并获取/设置任意属性而不是.get
和.set
方法,但这会很混乱。最好在适当的时候使用普通对象,或者使用Map
with.get
和.set
方法 - 但不要混合使用这两种语法。
推荐阅读
- jquery - 访问特定数组节点bu名
- java - 合并列表而不是每个地图或集合
- javascript - 在javascript中将数字转换为数组| angular7的打字稿
- pdf - Magento 2 - 如何从前端(用户帐户)以 pdf 格式打印发票
- phpcs - 多行函数调用的右括号必须单独在一行
- python - python lxml 添加一个保留所有父树的子元素
- xslt - 如何在 xslt 中使用 format-number 格式化数字
- java - 如何更改 MapStruct 生成的 *.java 文件的位置?
- python - Type(1,) 返回 int 预期元组
- angular - Angular:在 Angular 中获取我当前激活的路由的请求标头选项