zoukankan      html  css  js  c++  java
  • 数据结构 --- Set

    Set

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

    const s = new Set()
    s.add(1)
    s.add('A String')
    s.add({name:'lee'})
    s.add(true)
    s.add(1)
    console.log(s) // Set(4){1,'A string',{...},true}

    上面的代码通过add方法向Set结构加入成员,结果表明Set结构不会添加重复的值。

    《ES6标准入门》一书中写到Set函数可以接受一个数组(或者具有iterable接口的其他数据结构)作为参数,用来初始化。

    // 例一
    const set = new Set([1,2,3,4,4])
    [...set]  // [1,2,3,4]
    
    //例二
    const items = new Set([1,2,3,4,5,5,5,5])
    items.size //5
    
    //例三
    function divs(){
      return [...document.querySelectorAll('div')]    
    }
    
    const set = new Set(divs())
    set.size

    上面的代码中,例一和例二是Set函数接受数组作为参数,例三是接受类似数组的对象作为参数。上面的代码也展示了一种数组去重的方法。 // [...new Set(array)]

    向Set加入值时不会发生类型转换,所有5和“5”是两个不同的值。另外,两个对象总是不相等的。

    Set实例的属性和方法

    Set结构的实例有以下属性。

    · Set.prototype.constructor: 构造函数,默认就是Set函数

    · Set.prototype.size: 返回Set实例的成员总数。

    Set实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。

    操作方法:

    1. add()  // 添加某个值
    2. delete() // 删除某个值,返回布尔值,表示删除是否成功
    3. has() //返回一个布尔值,表示参数是否为Set的成员
    4. clear() //清除所有成员,没有返回值

    遍历方法:

    1. keys()  // 返回键名
    2. values()  // 返回键值
    3. entries()  // 返回键值对(同时包括键名和键值)
    4. forEach()  // 遍历每个成员
  • 相关阅读:
    mysql将一个表的数据 重复复制多份到表中
    PHP中将指定文本内容导入到word中
    系统安全-SElinux
    通过身份证号码提取年龄,性别
    MySQL-获取某天的数据
    mysql-介绍、MySQL部署、数据类型、存储引擎
    监控系统-ELK
    监控系统-Grafana
    监控系统-zabbix
    监控系统-openfalcon
  • 原文地址:https://www.cnblogs.com/lovekiku123/p/12372917.html
Copyright © 2011-2022 走看看