• es6学习笔记——【Set和Map用法,主要用于操作数组对象】


    一、Set的用法

      1.去除数组重复值;

    const set = new Set([1, 2, 3, 4, 4]);
    const s = [...set];
    console.log(s);
    // [1, 2, 3, 4]

      2.实例方法:   

           -add(value):添加某个值,返回 Set 结构本身。
      -delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
      -has(value):返回一个布尔值,表示该值是否为Set的成员。
      -clear():清除所有成员,没有返回值。 
    const s = new Set();
    s.add(1).add(2).add(2);
    // 注意2被加入了两次,但是只会加入一个。
    s.size // 2
    s.has(1) // true
    s.has(2) // true
    s.has(3) // false
    s.delete(2);
    s.has(2) // false

      3.遍历方法:

      -keys():返回键名的遍历器
      -values():返回键值的遍历器
      -entries():返回键值对的遍历器
      -forEach():使用回调函数遍历每个成员

    let set = new Set(['red', 'green', 'blue']);
    for (let item of set.keys()) {
      console.log(item);
    }
    // red
    // green
    // blue
    
    for (let item of set.values()) {
      console.log(item);
    }
    // red
    // green
    // blue
    
    for (let item of set.entries()) {
      console.log(item);
    }
    // ["red", "red"]
    // ["green", "green"]
    // ["blue", "blue"]

    let set = new Set([1, 4, 9]);
    set.forEach((value, key) => console.log(key + ' : ' + value))
    // 1 : 1
    // 4 : 4
    // 9 : 9
     

      3.结合扩展运算符(...)、mapfilter方法使用

    // (1)结合扩展运算符
    let arr = [3, 5, 2, 2, 5, 5];
    let unique = [...new Set(arr)];
    // [3, 5, 2]

    // (2)结合map
    let set = new Set([1, 2, 3]); set = new Set([...set].map(x => x * 2)); // 返回Set结构:{2, 4, 6}


    // (3)结合filter
    let set
    = new Set([1, 2, 3, 4, 5]);
    set
    = new Set([...set].filter(x => (x % 2) == 0));
    // 返回Set结构:{2, 4}

    // 实现交集、并集、差集
    let a = new Set([1, 2, 3]);
    let b = new Set([4, 3, 2]);
    
    // 并集
    let union = new Set([...a, ...b]);
    // Set {1, 2, 3, 4}
    // 交集 let intersect = new Set([...a].filter(x => b.has(x))); // set {2, 3} // 差集 let difference = new Set([...a].filter(x => !b.has(x))); // Set {1}
     

     二、weakSet的用法

      和Set用法相同,唯一区别是接受对象。

      具体查看文档,感觉没怎么用过

    三、Map的用法

      和对象(Object)相似,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。

      具体查看文档,感觉没怎么用过

    四、WeakMap结构与Map结构类似,也是用于生成键值对的集合。

      具体查看文档,感觉没怎么用过

  • 相关阅读:
    C# COM DLL 给vba调用
    c# autocad 通过进程向cad发送command
    AutoCAD Excel script
    c# 自动生成 autocad cuix
    AutoCAD 批处理打印文件
    c# 一套代码多个配置生成多个程序
    获取本机的com对象的progid和类型库的位置
    mybatis SqlMapConfig.xml配置
    GDAL 处理shape自相交图形
    PostGIS 常用函数
  • 原文地址:https://www.cnblogs.com/chenhuishui/p/10516274.html
Copyright © 2020-2023  润新知