0%
JS 中的数据结构
数组
优点
- 原型方法较多,可以比较方便的实现各种功能
- JSON 支持
- 相比 java,数组的长度不是固定的,不存在越界问题
- 兼容性好
缺点
- 没有获取到索引的情况下,查询效率相对低,时间复杂度为 O(n)
- 插入数据效率低O(n)
- 删除数据效率O(n)
应用场景
- 绝大部分数据处理
- JSON 支持,可以直接在接口中返回
- 前端列表渲染
对象
优点
- 兼容性好
- 查询效率高,时间复杂度为 O(1)
- JSON 支持
- 相对 Map 可以继承原型链上的属性
缺点
- 相对 MAP 键值只能是 string
- 相对 MAP 顺序不确定
- 相对 MAP 没有迭代属性
应用场景
MAP
优点
- 查询效率高,时间复杂度为 O(1)
- 相对对象这种结构,数据更清晰,效率更高
- 相对 OBJECT,语义化更好,支持功能多
缺点
- 原型方法没有数组多
- JSON 不支持,如果作为接口数据返回,需要重新转换为数组或对象
应用场景
链表
优点
- 插入性能比数组高 O(1)
- 删除性能比数组高 O(1)
缺点
- 索引效率低 O(n)
- 原生不支持,需要自己实现链表结构
应用场景
栈
应用场景
队列
应用场景
- 先进先出
- 排队场景
- 性能瓶颈的时候,使用队列,排队处理数据
位图
应用场景
树
应用场景