『JavaScript』何时使用 Map 来代替普通的 JS 对象( 二 )
本文插图
不管 actorMap 有一个名为toString的属性 , toString()方法都可以正常工作 。
3. map 是可迭代 为了遍历普通对象的属性 , 必须使用其他的辅助静态函数 , 如 Object.keys()或Object.entries():
本文插图
Object.entries(colorsHex) 返回从对象提取的键值对数组 。
但是 , map 本身是可迭代的:
本文插图
colorsHexMap是可迭代 。 可以在任何接受迭代的地方使用它:for()循环 , 展开运算符[...map] 。
map 提供了返回可迭代方法:map.keys() 遍历键 , map.values() 遍历值
4. map 的大小 普通对象的另一个问题是 , 您无法立马知道它包含的属性的数量 。
本文插图
要确定 exams 的大小 , 必须通过所有键来确定它们的数量 。
map 提供了 size 属性 , 表示属性的数量 。
【『JavaScript』何时使用 Map 来代替普通的 JS 对象】
本文插图
确定 map 的属性的数量更加简单:examsMap.size 。
总结 普通 JS 对象通常可以很好地保存结构化数据 , 但它们也有一些局限性:
- 只能用字符串或 sybmol 作为键
- 自己的对象属性可能会与从原型继承的属性键冲突(例如toString , constructor等) 。
- 对象不能用作键
不要将 map 当作普通对象的替代品 , 而应视为是普通对象补充 。
你还知道 map 比普通物体的其他好处吗?请在下方留言 。
原文:https://dmitripavlutin.com/maps-vs-plain-objects-javascript/作者:Dmitri Pavlutin 译者:前端小智 来源:dmitripavlutin
- IT数码通你现在使用哪款手机?你是否支持国产手机?
- 欧联网TB希腊跳岛游何时恢复?有哪些要求?政府这样说
- [猪肉]全国生猪均价将跌破15元,为何猪肉价格还要28元一斤?何时跌下来
- 青铜财识605代码首次使用,5月11日新股申购;威奥股份
- 格物电影FILM聊聊这几年使用大疆无人机的一些体验
- 埃尔法哥哥使用哪种编程语言的开发人员最幸福?
- 『西安』西安首条无障碍人行天桥投入使用
- 「累计」“五一”假期“河北健康码”累计登录使用4000万次
- 森狼战略观察利比亚使用孙子兵法,土耳其精锐败退,多枚火箭弹猛轰机场
- 极客宇文氏手机的寿命到底是多久,你多长时间换一次手机?手机本身哪些部位决定了寿命用户使用习惯注定寿命