1. Set
ES6提供的新的数据结构类似数组,但成员的值唯一
创建set
//初始值为空
let set1 = new Set();
//利用数组初始化,重复的元素会自动去重
let arr = [1,2,2,3];
let set2 = new Set(arr);
let set3 = new Set([1,2,2,3]);
console.log([...set2]); //1,2,3
Set的属性和方法
- .size: 返回Set成员的个数
- add(value): 添加value值,返回set结构本身.
- delete(value): 删除value值,返回布尔值,表示是否删除成功.
- has(value): 判断是否存在value值,返回布尔值,表示是否存在.
- clear(): 清空所有成员,无返回值
Set的遍历
- keys(): 返回键名的遍历器
- values(): 返回键值的遍历器(同keys)
- entries(): 返回键值对的遍历器
- forEach(): 遍历每个成员执行回调函数,无返回值
2. Map
map本质上是键值对的集合(hash结构)
创建Map
let map1 = new Map();
let map2 = new Map([['a',1],['b',2]]);
let map3 = new Map(map2);
Map的属性和方法
- .size: 返回Map实例中成员的总数
- set(key, value): 设置键名key对应的键值为value,若key不存在则生成新键,若存在则覆盖原先的值,该方法返回当前的Map对象
- get(key): 读取key对应的键值,若不存在则返回undefined
- has(key): 判断key是否存在,返回布尔值
- delete(key): 删除key,删除成功返回true,删除失败返回false
- clear(): 清楚所有成员,无返回值
Map遍历方法
- keys(): 返回键名的遍历器
- values(): 返回键值的遍历器
- entries(): 返回键值对的遍历器
- forEach(): 遍历每个成员,执行回调函数,无返回值