梗概
在数据结构选择中,绝大多数数据都是若干个数据项的集合。在能用的角度上,数组>Map,但需要根据具体需求进行选择。
数组 vs Map 决策框架
硬性条件(优先判断)
- 是否有唯一标识:无 → 只能选择数组
- 插入/调整位置需求:需在中间/指定位置插入 → 选择数组
主要决策因素
- 操作频率:
- 高频按标识读写 → 选择 Map
- 高频按顺序整体处理 → 选择数组
使用Map:
- 储存的键不是字符串/数字/或者
Symbol时,选择Map,因为Object并不支持 - 储存大量的数据时,选择
Map,因为它占用的内存更小 - 需要进行许多新增/删除元素的操作时,选择
Map,因为速度更快 - 需要保持插入时的顺序的话,选择
Map,因为Object会改变排序 - 需要迭代/遍历的话,选择
Map,因为它默认是可迭代对象,迭代更为便捷
使用 Object:
- 只是简单的数据结构时,选择
Object,因为它在数据少的时候占用内存更少,且新建时更为高效 - 需要用到
JSON进行文件传输时,选择Object,因为JSON不默认支持Map - 需要对多个键值进行运算时,选择
Object,因为句法更为简洁 - 需要覆盖原型上的键时,选择
Object