Object/Map 何为最佳实践

Posted wujiaqi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Object/Map 何为最佳实践相关的知识,希望对你有一定的参考价值。

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

「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 何为最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

最佳实践:软件版本控制 [关闭]

日志采集最佳实践

多个项目的集中式 webpack 配置 - 最佳实践?

表中的最佳实践数据库前缀?

数字孪生的4个最佳实践

数字孪生的4个最佳实践