目录
Set
Set类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成 Set 数据结构。
Set创建
和Map不同的是new Set()中的参数为一个数组,而不是以键值对存放的双数组。
let set1 = new Set();
let arr1 = [1,2,3,4,2,1,6,8,0,6];
let set2 = new Set(arr1);
Set实例的属性和方法
操作方法(增删改查)
- add(value):添加某个值,返回 Set 结构本身。
- delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
- has(value):返回一个布尔值,表示该值是否为Set的成员。
- clear():清除所有成员,没有返回值
size:返回Set实例的成员总数
遍历方法
- keys():返回键名的遍历器
- values():返回键值的遍历器
- entries():返回键值对的遍历器
- forEach():使用回调函数遍历每个成员,由于 Set 结构没有键名,只有键值(或者说键名和键值是同一个值),所以keys方法和values方法的行为完全一致。Set 结构的键名就是键值(两者是同一个值)。
set2.forEach(function (key,value) { console.log('key:'+key,'value:'+value); });
Set的遍历顺序是插入顺序,使用 Set 保存一个回调函数列表,调用时就能保证按照添加顺序调用
- for of循环
let arr1 = [1,2,3,4,2,1,6,8,0,6]; let set2 = new Set(arr1); for (let i of set1){ console.log(i); }