ES6---Set数据结构

        // Set数据结构:是es6中新增的一种数据结构,它类似与数据,单里面的数据都是唯一的,并且不能够通过索引获取对应的值
        // Set本身是一个构造函数,用来生成Set数据结构
        var arr = [1, 2, 3, 4, '韩信', '李白']
        let setarr = new Set(arr)
        console.log(setarr); // Set(6) {1, 2, 3, 4, "韩信", …}
        console.log(setarr[3]);//undefined  Set数据结构不能通过索引来获取元素

        // Set数据结构常用的方法:

        // 1.add(): 在Set数据对象的尾部添加一个元素,并返回这个Set对象
        setarr.add('周瑜')
        console.log(setarr); // Set(7) {1, 2, 3, 4, "韩信", …}

        // 2. .size: 返回Set数据对象的长度大小
        console.log(setarr.size); // 7

        // 3. delete():删除Set数据对象中的一元素,返回一个布尔值表示是否删除成功
        console.log(setarr.delete('韩信')); // true
        console.log(setarr); // Set(6) {1, 2, 3, 4, "李白", …}
        console.log(setarr.size); // 6

        // 4. .clear: 清空Set数据对象,没有返回值
        setarr.clear();
        console.log(setarr);

        // 5. has(): 返回一个布尔值,判断这个元素在Set对象中是否存在
        console.log(setarr.has(1)); // false


        // Set数据结构是可以遍历的
        [1, 2, 3, 4, 5].map(item => setarr.add(item))
        console.log(setarr);// Set(5) {1, 2, 3, 4, 5}

        // 1..values() 返回一个新的迭代器对象,该对象包含Set对象中的按插入顺序排列的所有元素的值。
        console.log(setarr.values()); // SetIterator {1, 2, 3, 4, 5}

        // 2. 用forEach遍历Set结构数据 
        setarr.forEach(item => { console.log(item + 1); }) //2,3,4,5,6

        // 3.用next()遍历
        let it = setarr.values();
        console.log(it.next());
        console.log(it.next());
        console.log(it.next());
        console.log(it.next());
        console.log(it.next());
        console.log(it.next());

        // 4. 用for...of遍历
        for (let key of setarr) {
            console.log(key); // 1,2,3,4,5
        }

        // 利用Set对数组去重
        var arr1 = [1, 2, 3, 35, 232, 43, 5, 2, 35, 46, 23, 4, 3, 2, 2]
        let arrset = new Set(arr1)
        console.log(arrset);
        // let Arrset = [...arrset]
        let Arrset = Array.from(arrset)
        console.log(Arrset);
原文地址:https://www.cnblogs.com/1825224252qq/p/11784485.html