Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。(二维键值对数组)
key:键值名
value:值
属性:
-
set(键名,对应的值):设置键值对; -
get(键名):取出键名对应的值 -
entries():返回一个新的Iterator 对象,它按插入顺序包含了 Map 对象中每个元素的 [key, value] 数组。 -
keys():返回一个新的 Iterator 对象, 它按插入顺序包含了 Map 对象中每个元素的键。 -
values():返回一个新的 Iterator 对象,它按插入顺序包含了 Map 对象中每个元素的值。 -
如果想要得到Map的键值对个数可以从size属性获取 -
delete(键名),返回值是布尔值,删除指定键名的元素。 -
clear(),清空所有数据 -
has():用于查找键名。
Map的迭代:对Map进行遍历
1.for of:例:
for (var [key,value] of myMap){
console.loog.log(key+"="+value)
}
2.forEach():例:
myMap.forEach(function(value,key){
console.log(key+"="+value)};
myMap)
Map对象的操作:
1.Map与Array的转换
- 转为数组:Array.from(Map对象)
- 转为Map:new Map(二维键值对数组)
2.Map的合并:
注意:这里的[]必须是两个;
补充:... 展开运算符:ES6中可以使用展开运算符将数组或对象里面的值展开;还可以将多个值收集为一个变量;
Set对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用
定义:Set对象存储的值总是唯一的(也就是Set中两个值不能恒等),需要注意的是:
+0===-0;
undefined===undefined;
NaN!==NaN(虽然这两个值不恒等,但是在Set中只能存一个,不能重复)
属性:
-
has()方法:用于查找值
-
add()方法:添加值
-
如果想要得到Map的键值对个数可以从size属性获取
类型转换:
数组:
1.Array转Set:new Set(数组)
2.Set转Array:[...Set对象]
字符串:
1.String转Set:new Set(字符串) 2.Set转数组:Array.from(Set)
注意:Set中toString方法是不能将Set转换成String
Set对象的作用:
1.数组去重:(原理:Set对象存储任何对象的唯一值)
2.并集:
3.交集:
4.差集: