码迷,mamicode.com
首页 > 其他好文 > 详细

Object/Map 何为最佳实践

时间:2020-07-23 22:58:30      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:键值对   并且   自定义   遍历   无法   性能   类型   一个   好的   

在解决问题考虑两者的时候就需要考虑两者的区别。

「Map」 是可迭代的,可以直接进行迭代,例如forEach循环或者for...of...循环.Map 保持对长度的跟踪,map.size可获取长度。

  • 插入顺序是你解决问题时需要考虑的,并且当前需要使用除 String 和 Symbol 以外的键名时,那么 「Map」 就是个最佳解决方案
  • 如果需要遍历键值对(并且需要考虑顺序),那我觉得还是需要优先考虑 「Map」
  • Map是一个纯哈希结构,而Object不是(它拥有自己的内部逻辑)。Map 在频繁增删键值对的场景下表现更好,性能更高。因此当你需要频繁操作数据的时候也可以优先考虑 Map
  • 再举一个实际的例子,比如有一个自定义字段的用户操作功能,用户可以通过表单自定义字段,那么这时候最好是使用 Map,因为很有可能会破坏原有的对象
  • 当你需要处理一些属性,那么 「Object」 是完全受用的,尤其是需要处理 JSON 数据的时候。由于 「Map」 可以是任意类型,因此没有可以将其转化为 JSON 的原生方法。

「Object」对象通常可以很好的保存结构化数据,但是也有相应的局限性:

  1. 键名接受类型只能用 String 或者 Symbol
  2. 自定义的键名容易与原型继承的属性键名冲突(例如 toString,constructor 等)
  3. 对象/正则无法用作键名 而这些问题通过 「Map」 都可以解决,并且提供了诸如迭代器和易于进行大小查找之类的好处

Object/Map 何为最佳实践

标签:键值对   并且   自定义   遍历   无法   性能   类型   一个   好的   

原文地址:https://www.cnblogs.com/wujiaqi/p/13368823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!