我一直在关注MDN上的新ES6文档,但我找不到普通对象无法正常工作的Map对象的真实世界用途。有没有人有地图的任何用例,并解释为什么一个对象在那种情况下不起作用?
答案 0 :(得分:8)
MDN lists a number of important differences:
Object
有原型,因此地图中有默认键。 [编辑:好的hasOwnProperty
问题]Object
的密钥为Strings
,,其中Map
可以是任意值。- 当您必须手动跟踪
Map
的尺寸时,您可以轻松获得Object
的尺寸。Map
按插入顺序迭代其元素,而未为Objects
指定迭代顺序。
因此,Map
最终是Javascript的插入顺序键值存储,它还允许将任何值映射到任何值,而不是将键限制为字符串。这可以大大简化一些代码,其中排序很重要,或者对象或其他复杂数据类型需要与其他数据相关联。