zoukankan      html  css  js  c++  java
  • JavaScript——Set 的用法

    1.set对象的声明

    let set1 = new Set()

    2.获取元素数量

    set1.size

    3.检测元素是否存在

    set1.has(' ')

    4.删除元素

    set1.delete(' ')

    4.清除元素

    set1.clear()

    5.将set对象转化为数组

    //方法一
    const set = new Set([1,2,3,4,4,]); [...set];

    //方法二
    Array.from(set);

    6.

    // 去除数组重复成员
    function dedupe(array) {
      return console.log(Array.from(new Set(array)));
    }
     
    dedupe([1,1,2,3]);
    let set
    = new Set(['red', 'green', 'blue']); // 返回键名 for(let item of set.keys()) { console.log(item); } // 返回键值 for(let item of set.values()) { console.log(item); }
    // set 键名=键值 // 返回键值对 for(let item of set.entries()){ console.log(item); }
    // 可以直接用 for of遍历Set
    // for in 和 for of的区别是:in 是遍历对象,of是遍历值
    for (let x of set) {
      console.log(x);
    }
     
    // set也有forEach()方法
    set.forEach((value, key) => console.log(key + ' : ' + value));
    // 此处forEach方法的参数是一个处理函数。
     
    // 数组的 map 和 filter 方法也可以间接用于Set
    let s = new Set([1,2,3]);
     
    // map 将原数组映射成新数组
    s = new Set([...s].map(x => x * 2));
    console.log(s);
     
    // filter返回过滤后的新数组
    s = new Set([...s].filter(x => (x % 3) ==0));
    console.log(s);
     
    // 实现并集、交集、差集
    let a = new Set([1,2,3]);
    let b = new Set([4,3,2]);
     
    let union = new Set([...a, ...b]);//并集
    console.log(union);
     
    let intersect = new Set([...a].filter(x => b.has(x)));//交集
    console.log(intersect);
     
    let difference = new Set([...a].filter(x => !b.has(x)));//差集
    console.log(difference);
     
    // 在遍历操作中,同步改变原来的Set结构的两种变通方法
     
    // 1.利用原Set结构映射出一个新的结构,然后赋值给原来的Set结构
    let set1 = new Set([1,2,3]);
    set1 = new Set([...set1].map(val => val *2));
    console.log(set1);
     
    // 2.利用Array.from
    let set2 = new Set([1,2,3]);
    set2 = new Set(Array.from(set2, val => val * 2));
    console.log(set2);
  • 相关阅读:
    gulp-rev:项目部署缓存解决方案----gulp系列(六)
    nodemailer实现node发送邮件
    angular项目总结——angular + browserify + gulp + bower + less 架构分享
    作为面试官之后的一些体会
    前端乱炖,总结一些细节点
    webapp,liveapp: 流式布局和rem布局
    canvas剪裁图片并上传,前端一步到位,无需用到后端
    (高德地图)marker定位 bug 解决总结
    gulp-clean----gulp系列(五)
    APUE-文件和目录(一)
  • 原文地址:https://www.cnblogs.com/ccv2/p/12502667.html
Copyright © 2011-2022 走看看