集合的概念:集合是由一组无序且唯一的项组成的。
特点 : key 和 value 相同,没有重复的值
es6 提供了数据结构 set , 他类似于数组,但是成员的值都是唯一的,没有重复的值。
1、如何创建一个 set (Set 本身是一个构造函数,用来生成 Set 数据结构。)
var a = new Set([1,2,3]);
console.log(a); // Set(3) {1, 2, 3}
用 Set 为数组去重
const set = new Set([1,2,3,4,2]);
console.log(set); // Set(4) {1, 2, 3, 4}
2、Set 实例的属性和方法(size 、constructor)
var a = new Set([1,2,3]);
console.log(a.size); // 3
console.log(a.constructor); // function Set() { [native code] }
Set 实例的方法
Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)
1、add 方法 (添加某个值,返回Set结构本身)
var a = new Set([1,2,3]);
a.add("1").add(4);
console.log(a); // Set(5) {1, 2, 3, "1", 4}
2、delete 方法(删除某个值,返回一个布尔值,表示删除是否成功)
var a = new Set([1,2,3]);
a.add("1").add(4);
console.log(a); // Set(5) {1, 2, 3, "1", 4}
console.log(a.delete(1)); // true
console.log(a.delete(1)); // false
3、has 方法 (返回一个布尔值,表示该值是否为Set的成员)
var a = new Set([1,2,3]); console.log(a.has(1)); // true
4、clear 方法(清除所有成员,没有返回值)
var a = new Set([1,2,3]);
a.clear();
console.log(a); // Set(0) {}
5、keys 方法(返回键名的遍历器)
var a = new Set([1,2,3]);
console.log(a.keys()); // SetIterator {1, 2, 3}
var a = new Set(['red', 'green', 'blue']);
for (let i of a.keys()){
console.log(i); // red , green , blue
}
6、values 方法(返回键值的遍历器)
var a = new Set(['red', 'green', 'blue']);
for (let i of a.values()){
console.log(i); // red , green , blue
}
var a = new Set(['red', 'green', 'blue']);
console.log(a.values()); // SetIterator {"red", "green", "blue"}
7、entries 方法 (返回键值对的遍历器)
var a = new Set(['red', 'green', 'blue']);
console.log(a.entries()); // SetIterator {"red", "green", "blue"}
var a = new Set(['red', 'green', 'blue']);
for(let item of a.entries()){
console.log(item); // (2) ["red", "red"] (2) ["green", "green"] (2) ["blue", "blue"]
}
8、forEach 方法
var a = new Set(['red', 'green', 'blue']);
a.forEach(function (value, key, a) {
console.log( value + " miaov" ); // red miaov
}) // green miaov
// blue miaov
来源:https://www.cnblogs.com/debra/p/7084488.html