Set
ES6提供了新的数据结构Set。类似于数组,只不过其成员值都是唯一的,没有重复的值。
Set本身是一个构造函数,用来生成Set数据结构。
var s = new Set(); // 通过add方法向Set结构中加入成员
[2, 3, 5, 4, 5, 2, 2].map(x => s.add(x))
for (i of s) { console.log(i) }
// 2 3 4 5 (表明set结构不会添加重复的值)
Set结构接收一个数组作为参数,用来初始化。
var items = new Set([1, 2, 3, 4, 5, 5, 5]);
items.size
// 5
向Set加入值的时候,不会发生类型转换。这意味着,在Set中5和”5”是两个不同的值。
Set结构有以下属性:
- Set.prototype.constructor: 构造函数,默认就是Set函数。
- set.prototype.size : 返回Set的成员总数。
Set结构有以下方法:
- add(value) : 添加某个值。
- delete(value) : 删除某个值。
- has(value) : 返回一个布尔值,表示该值是否为Set的成员。
- clear() : 清除所有成员。
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
注意: Array.from方法可以将Set结构转换为数组。
var items = new Set([1, 2, 3, 4, 5]);
var array = Array.from( items );
这也提供了一种除去数组中重复元素的方法。
function dedupe( array ) {
return Array.from( new Set(array) );
}
版权声明:除特别注明外,本站所有文章均为田珊珊个人博客原创
转载请注明:出处来自田珊珊个人博客 » ES6入门——Set数据结构