ECMAScript-----(七)set数据结构

基本用法

  1. ES6提供的一种新的数据结构,类似数组,但成员唯一
  2. set本身是一个构造函数,用来生成set数据结构

数组去重方法

  1. let newArr = [...new Set(array)]

    数组元素重复判定标准与“===”类似,区别是NaN等于NaN,而精确相等运算符认为NaN不等于自身

    let set = new Set();
    let a = NaN;
    let b = NaN;
    set.add(a);
    set.add(b);
    set // Set {NaN}

     

  2. let newArr = Array.from(new Set(arr))

     

set实例的属性和方法

  1. 属性

    1. //构造函数,默认就是Set函数
      Set.prototype.constructor
    2. //返回set实例的成员个数
      Set.prototype.size
  2. 方法

    1. 操作方法 
      • add(value)
      • delete(value)
      • has(value)
      • clear()
      • s.add(1).add(2).add(2);
        
        s.size // 2
        
        s.has(1) // true
        s.has(2) // true
        s.has(3) // false
        
        s.delete(2);
        s.has(2) // false
    2. 遍历方法
      • keys()
        let set = new Set(['red', 'green', 'blue']);
        
        for (let item of set.keys()) {
          console.log(item);
        }
        // red
        // green
        // blue
      • values()
        for (let item of set.values()) {
          console.log(item);
        }
        // red
        // green
        // blue
        //因为Set结构的简明和键值相同,故keys和values行为一致

         

      • entries()
        for (let item of set.entries()) {
          console.log(item);
        }
        // ["red", "red"]
        // ["green", "green"]
        // ["blue", "blue"]
        //因为set结构键名和键值相同,故每次输出一个数组,它的两个成员完全相等
      • foreach()
        let set = new Set([1, 2, 3]);
        set.forEach((value, key) => console.log(value * 2) )
        // 2
        // 4
        // 6
        //foreach用于对每个成员进行某种操作,没有返回值

注意

  1. 在set内部,NaN等于自身,两个对象总是不相等
    let set = new Set();
    
    set.add({});
    set.size // 1
    
    set.add({});
    set.size // 2
posted @ 2021-04-20 11:05  会转圈圈的哆瑞米  阅读(51)  评论(0编辑  收藏  举报