Map是一组键值对的结构,具有极快的查找速度。
1.Map是键值对,Set是值得集合,当然键和值可以是任何的值;
2.Map可以通过get⽅法获取值,⽽set不能因为它只有值;
3.都能通过迭代器进⾏for...of遍历;
4.Set的值是唯⼀的可以做数组去重,Map由于没有格式限制,可以做数据存储
Map : set ,get has,delete clear, foreach
var m = new Map(); // 空Map m.set('Adam', 67); // 添加新的key-value m.set('Bob', 59); m.has('Adam'); // 是否存在key 'Adam': true m.get('Adam'); // 67 m.delete('Adam'); // 删除key 'Adam' m.get('Adam'); // undefined
Set: add ,delete, has, clear
一、set
1、定义:set是一种数据结构,类似于数组,但成员的值都是唯一的。
2、去除数组的重复成员:[...new set(array)]。
3、set实例的属性和方法
3.1、set.prototype.size 总数
3.2、set.prototype.add(value) 添加值,返回set本身
3.3、set.prototype.delete(value) 删除值,返回布尔值,表示删除是够成功
3.4、set.prototype.has(value) 返回布尔值,表示该值是否是set成员
3.5、set.prototype.clear() 清除所有成员,无返回值
4、Array.from方法可以将set结构转化为数组
例:const items = new Set([1,2,3,4,5])
const array = Array.from(items)
5、遍历
5.1、forEach(键值,键名,集合本身);
5.2、扩展运算符(...)
二、Map
1、定义:Map数据结构,类似于对象,也是键值对的集合,但是键不仅仅局限于字符串,各种类型的值都可以。
2、方法(简单罗列,不做一一描述)
set()、get()、has()、delete()、clear()
3、转换
3.1、对象转换成Map let map = new Map(Object.entries(obj));
3.2、Map转为数组 [...myMap]