数据结构 --- Set

Set

ES6提供了新的数据结构  ---  Set. 它类似于数组,可以存储任意数据类型,但是成员的值都是唯一的,没有重复。Set本身是一个构造函数,用来生成Set数据结构。

const s = new Set()
s.add(1)
s.add('A String')
s.add({name:'lee'})
s.add(true)
s.add(1)
console.log(s) // Set(4){1,'A string',{...},true}

上面的代码通过add方法向Set结构加入成员,结果表明Set结构不会添加重复的值。

《ES6标准入门》一书中写到Set函数可以接受一个数组(或者具有iterable接口的其他数据结构)作为参数,用来初始化。

// 例一
const set = new Set([1,2,3,4,4])
[...set]  // [1,2,3,4]

//例二
const items = new Set([1,2,3,4,5,5,5,5])
items.size //5

//例三
function divs(){
  return [...document.querySelectorAll('div')]    
}

const set = new Set(divs())
set.size

上面的代码中,例一和例二是Set函数接受数组作为参数,例三是接受类似数组的对象作为参数。上面的代码也展示了一种数组去重的方法。 // [...new Set(array)]

向Set加入值时不会发生类型转换,所有5和“5”是两个不同的值。另外,两个对象总是不相等的。

Set实例的属性和方法

Set结构的实例有以下属性。

· Set.prototype.constructor: 构造函数,默认就是Set函数

· Set.prototype.size: 返回Set实例的成员总数。

Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。

操作方法:

1. add()  // 添加某个值
2. delete() // 删除某个值,返回布尔值,表示删除是否成功
3. has() //返回一个布尔值,表示参数是否为Set的成员
4. clear() //清除所有成员,没有返回值

遍历方法:

1. keys()  // 返回键名
2. values()  // 返回键值
3. entries()  // 返回键值对(同时包括键名和键值)
4. forEach()  // 遍历每个成员
原文地址:https://www.cnblogs.com/lovekiku123/p/12372917.html