美文网首页
es6 set map 读书笔记

es6 set map 读书笔记

作者: 芗芗_ | 来源:发表于2018-05-25 14:56 被阅读0次

    阮一峰 http://es6.ruanyifeng.com/#docs/set-map

    Set

    ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
    Set 本身是一个构造函数,用来生成 Set 数据结构。

    作用:去重
    算法:

    Set 内部判断两个值是否不同,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符(===),主要的区别是NaN等于自身,而精确相等运算符认为NaN不等于自身。
    这表明,在 Set 内部,两个NaN是相等,两个对象总是不相等的。

    // set是一种新的数据结构 Array.from可以转化成数组
    去重代码:
    function dedupe(array) {
      return Array.from(new Set(array));
    }
    dedupe([1, 1, 2, 3]) // [1, 2, 3]
    
    应用扩展符:
    let arr = [3, 5, 2, 2, 5, 5];
    let unique = [...new Set(arr)];
    
    

    set不能同步改变原来的 Set 结构,目前没有直接的方法,但有两种变通方法。一种是利用原 Set 结构映射出一个新的结构,然后赋值给原来的 Set 结构;另一种是利用Array.from方法。 都是利用数组来做改变和转换的

    WeakSet
    作用:去重
    算法:

    1.WeakSet 的成员只能是对象
    2.WeakSet 中的对象都是弱引用,即垃圾回收机制不考虑 WeakSet 对该对象的引用 而垃圾回收机制何时运行是不可预测的,因此 ES6 规定 WeakSet 不可遍历。

    ps:不知道这个具体要用来做什么 只是说 做一些对象以外的事情 
    
    map
    作用:值—值的hash数据结构
    算法:

    ES6 提供了 Map 数据结构。它类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键。也就是说,Object 结构提供了“字符串—值”的对应,Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。如果你需要“键值对”的数据结构,Map 比 Object 更合适。

    相关文章

      网友评论

          本文标题:es6 set map 读书笔记

          本文链接:https://www.haomeiwen.com/subject/mlayjftx.html