map对象的特性:
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
|
对象记得键的原始插入顺序。
|
对象具有表示映射大小的属性。
|
map对象的几个常用方法和属性:
new Map()
| 创建新的 Map 对象。 |
set() | Map 对象中的键设置值。 |
get() | 获取 Map 对象中键的值。 |
entries() | 返回 Map 对象中键/值对的数组。 |
keys() | 返回 Map 对象中键的数组。 |
values() | 返回 Map 对象中值的数组。 |
For ( of ) | 返回键和值回调 |
ForEach | 返回键和值回调 |
<----------------------------------------------------------------------------------------------------------------------------->
set对象的特性:
Set是唯一值的集合类似与数组,常用于数组去重 |
Set对象的几个常用方法和属性:
new Set() | 创建新的 Set 对象。 |
add() | 向 Set 添加新元素。 |
clear() | 从 Set 中删除所有元素。 |
delete() | 删除由其值指定的元素。 |
has() | 如果值存在则返回 true。 |
forEach() | 为每个元素调用回调。 |
keys() | 返回 Set 对象中值的数组。 |
size | 返回元素个数。 |
<----------------------------------------------------------------------------------------------------------------------------->
set对象与map对象的区别:
Set对象可以接收一维数组和字符串类型添加值 |
Set对象只有value值 |
Set对象可以对数组去重 |
map对象与object区别:
共同点
二者都是以key-value的形式对数据进行存储。 |
不同点
key的数据类型范围不同 | obj可以作为key的仅有number、string、symbol。 map均可以。 |
key的顺序不同 | obj通过obj.keys()打印出来的属性顺序是 number–字符串。 map的key顺序是声明顺序。 |
创建方式不同 | obj有三种创建方式 字面量{}、new Object() 、构造函数。 map仅支持new Map() |
key的调用不同 | map只能用原生的get方法调用。 |
设置属性的方式不同 | map只能使用set(key,val)方法设置属性。 |
Size属性 | map有size属性,对象没有。Map.size 返回 Map 中元素的数量,而 Object 的键值对个数只能手动计算 |