依据阮一峰的博客做的学习笔记。

//new Set() 是参数的数据类型不会产生扭转,例如 5 和 '5'    //新的set数据    const data = new Set()    let arr = [1,2,3,4,5,54,3,2]    arr.forEach(e => {      data.add(e) //应用 add 办法向 data 数据增加数据    })    console.log('arr', data);  //输入 1,2,3,4,5,54  反复的数据曾经被过滤掉了    //set 构造能够在 new 创立的时候间接接管一个数组    const setArr = new Set([1,1,2,2,3,3,4,5,6])    console.log('setArr',setArr);  //输入 1,2,3,4,5,6  曾经实现去重的工作    console.log('size', setArr.size);   //输入6  应用 .size 办法获取 set 里数据的数量    setArr.delete(2)    console.log('del',setArr)    //输入1,3,4,5,6 其中 2 曾经被删除,应用 delete 删除 set 构造中的数据    console.log('has',setArr.has(6));   //输入 true 示意 set 数据中有 6 这个成员    setArr.clear()    console.log('clear', setArr)   //输入一个空的 set 数据 size 为 0,clear 用于清空 set 数据的成员    //去除字符串中的反复值    let doubleStr = new Set('aaaabbbccc')    console.log('str', [...doubleStr].join(''));   //留神:肯定要先应用 ... 扩大一下,set 数据是没有 join 办法的会报错    //利用 Array.from() 数组去重    const fromArr = [1,2,3,4,1,2,3,4]    console.log('扩大去重', [ ...new Set(fromArr) ])  //输入 [1,2,3,4]    console.log('Array.from 去重', Array.from(new Set(fromArr)))  //输入 [1,2,3,4]    /**     * 对于 set 数据的遍历     * Set.prototype.keys():返回键名的遍历器     * Set.prototype.values():返回键值的遍历器     * Set.prototype.entries():返回键值对的遍历器     * Set.prototype.forEach():应用回调函数遍历每个成员     * set 数据自带上述遍历办法    */    let testSet = new Set([1,2,3,4,5,5,4,2])    testSet.forEach(item => {      console.log('forEach', item);    })