• Map对象,Set对象使用(2)


    今天重点见一下Set

    Set 在我印象里它主要就是去重,Set 是一个值的集合,这个集合中所有的值仅出现一次

    Set 属性size:和Map的size一样,返回成员的总数

    Set的方法:

    • Set.prototype.add(value):添加某个值,返回 Set 结构本身。
    • Set.prototype.delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
    • Set.prototype.has(value):返回一个布尔值,表示该值是否为Set的成员。
    • Set.prototype.clear():清除所有成员,没有返回值。
    let set = new Set();
    set.add(1);set.add(1);set.add(2);
    set.has(1);//true
    set.has(2);//true
    set.add({x:2});
    
    set.add({x:1});
    set.add(function(){});
    set.add([]);
    set.has(2)//true
    
    console.log(set.size)
    set.delete(1);
    set.forEach(point =>{
        if(point.x<5){
            set.delete(point)
        }
    })
    console.log(set.size)//3
    
    set.clear();
    console.log(set.size)//0

    Set里面的很多方法和Map是一样的(包括下面的)。同样对象,函数,数组,都是唯一的地址,

    Set含有has判断特殊值

    +0,-0是恒定的,还有undefned与undefined,他俩也是不重复的,而NaN 与 NaN 是不恒等,Set会认为他俩相等

    Set的遍历方法:

    • Set.prototype.keys():返回键名的遍历器。
    • Set.prototype.values():返回键值的遍历器。
    • Set.prototype.entries():返回所有成员的遍历器。
    • Set.prototype.forEach():遍历 Set的所有成员。
    const set = new Set(['a', 'b', 'c'])
    ​
    for (let item of set.keys()) {
      console.log(item)
    }
    // a
    // b
    // c
    for (let item of set.values()) {
      console.log(item)
    }
    // a
    // b
    // c
    for (let item of set.entries()) {
      console.log(item)
    }
    // ["a", "a"]
    // ["b", "b"]
    // ["c", "c"]
    // 直接遍历set实例,等同于遍历set实例的values方法
    for (let i of set) {
      console.log(i)
    }
    // a
    // b
    // c
    ​
    set.forEach((value, key) => console.log(key + ' : ' + value))
    ​
    // a: a
    // b: b
    // c: c

    最后对比一下他俩的区别

    Set主要还是去重,值唯一,

    Map主要是以键值对的形式存在,类似于json,但包含所有数据类型

     
  • 相关阅读:
    关于AES加密,以及各种分组加密
    MakeFile文件是什么——内容、工作原理、作用、使用
    Nachos java版学习(二)
    Nachos java版学习(一)
    LinkedList的基本用法
    Java线程状态的改变
    线程详解
    为什么打开fiddler电脑就不能上网,关了就能正常打开了呢?
    猫和路由器的区别
    python入门学习1
  • 原文地址:https://www.cnblogs.com/zhaozhenghao/p/11200036.html
Copyright © 2020-2023  润新知