ECMAScript-----(七)set数据结构
基本用法
- ES6提供的一种新的数据结构,类似数组,但成员唯一
- set本身是一个构造函数,用来生成set数据结构
数组去重方法
-
let newArr = [...new Set(array)]
数组元素重复判定标准与“===”类似,区别是NaN等于NaN,而精确相等运算符认为NaN不等于自身
let set = new Set(); let a = NaN; let b = NaN; set.add(a); set.add(b); set // Set {NaN}
-
let newArr = Array.from(new Set(arr))
set实例的属性和方法
-
属性
-
//构造函数,默认就是Set函数 Set.prototype.constructor
-
//返回set实例的成员个数 Set.prototype.size
-
-
方法
- 操作方法
- add(value)
- delete(value)
- has(value)
- clear()
-
s.add(1).add(2).add(2); s.size // 2 s.has(1) // true s.has(2) // true s.has(3) // false s.delete(2); s.has(2) // false
- 遍历方法
- keys()
let set = new Set(['red', 'green', 'blue']); for (let item of set.keys()) { console.log(item); } // red // green // blue
- values()
for (let item of set.values()) { console.log(item); } // red // green // blue //因为Set结构的简明和键值相同,故keys和values行为一致
- entries()
for (let item of set.entries()) { console.log(item); } // ["red", "red"] // ["green", "green"] // ["blue", "blue"] //因为set结构键名和键值相同,故每次输出一个数组,它的两个成员完全相等
- foreach()
let set = new Set([1, 2, 3]); set.forEach((value, key) => console.log(value * 2) ) // 2 // 4 // 6 //foreach用于对每个成员进行某种操作,没有返回值
- keys()
- 操作方法
注意
- 在set内部,NaN等于自身,两个对象总是不相等
let set = new Set(); set.add({}); set.size // 1 set.add({}); set.size // 2