es6学习笔记 (数据结构set)

集合的概念:集合是由一组无序且唯一的项组成的。

特点 :  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