zoukankan      html  css  js  c++  java
  • 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」 都可以解决,并且提供了诸如迭代器和易于进行大小查找之类的好处
  • 相关阅读:
    Happy New Year
    CF1450G
    理希的NOI2020退役记
    luoguP4859 已经没有什么好害怕的了(二项式反演)
    知识点简单总结——二项式反演
    bzoj4671 异或图(斯特林反演,线性基)
    知识点简单总结——斯特林数、斯特林反演
    uoj450 【集训队作业2018】复读机(生成函数,单位根反演)
    有标号DAG计数(生成函数)
    知识点简单总结——单位根反演
  • 原文地址:https://www.cnblogs.com/wujiaqi/p/13368823.html
Copyright © 2011-2022 走看看