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」对象通常可以很好的保存结构化数据,但是也有相应的局限性:
- 键名接受类型只能用 String 或者 Symbol
- 自定义的键名容易与原型继承的属性键名冲突(例如 toString,constructor 等)
- 对象/正则无法用作键名 而这些问题通过 「Map」 都可以解决,并且提供了诸如迭代器和易于进行大小查找之类的好处
以上是关于Object/Map 何为最佳实践的主要内容,如果未能解决你的问题,请参考以下文章