JS的Map对象
- 概述
ES6新增的一种数据结构Map,对操作键值对很友好,键值对集合,提供属性和方法供开发者使用。存有键值对,键可以是任何数据类型;按照原始插入顺序存储(FIFO)原则;具有表示映射大小的属性。 - 创建
const colors = new Map(iterable)
- 方法
-
常用方法
- set():为Map对象设置键值对
- get():获取Map对象中键的值
- entries():返回Map对象中键值对数组
- keys():返回Map对象中键数组
- values():返回Map对象中值数组
-
其他方法
- clear():删除Map对象中所有的元素
- delete():删除由键指定的元素
- has():如果键存在,返回true
- forEach():键值对调用回调
- 属性
- size:获取Map对象中键值对个数
- Map对象和Object对象对比
对比项 | 对象 | Map |
---|---|---|
Size | 手动计算个数 | size属性直接获取键值对个数 |
键类型 | 必须是字符串或Symbols | 任何数据类型 |
键顺序 | 无序 | 按照插入顺序存储 |
性能 | 无 | 频繁增删键值对场景性能优势 |
默认 | 有默认键 | 无默认键 |
- 扩展
-
Map合并,键相同会覆盖
-
基本数据类型的键相同会覆盖,引用类型的键相同不会覆盖
-
clear()方法没有返回值
-
Array.from将Map对象转换成数组
-
获取未知的键返回undefined