es6学习笔记7--Set
Set基本用法ES6提供了新的数据结构Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 Set本身是一个构造函数,用来生成Set数据结构。 var s = new Set(); [2,3,5,4,2,2].map(x => s.add(x)); for (let i of s) { console.log(i); } // 2 3 5 4 上面代码通过 Set函数可以接受一个数组(或类似数组的对象)作为参数,用来初始化。 例一 var set = new Set([1,4]); [...set] [1,4] 例二 var items = ]); items.size 5 例三 function divs () { return [...document.querySelectorAll('div')]; } Set(divs()); set.size 56 类似于 divs().forEach(div => set.add(div)); set.size 56 上面代码中,例一和例二都是 上面代码中,也展示了一种去除数组重复成员的方法。 去除数组的重复成员 [...new Set(array)] 向Set加入值的时候,不会发生类型转换,所以 Set实例的属性和方法Set结构的实例有以下属性。
Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。
上面这些属性和方法的实例如下。 s.add(1).add(2).add(2); 注意2被加入了两次 s.size 2 s.has(1) true s.has(2) true s.has(3) false s.delete(2); s.has(2) false
]); var array = Array.from(items); 这就提供了去除数组重复成员的另一种方法。 dedupe(array) { return Array.from( Set(array)); } dedupe([1,1,3]) 遍历操作 |