ES6中的SET和MAP数据结构

  SET 和 MAP 数据结构
    + 两个是 ES6 出现的两种数据结构
    + SET 就是一个类似于 数组 的数据结构
    + MAP 就是一个类似于 对象 的数据结构

  SET 数据结构
    + 是一个类似于 数组 的数据结构
    + 创建数据的语法
      1. 内置构造函数创建
        => var s1 = new Set()
    + 创建的时候可以直接向小括号里面添加数据
      => var s1 = new Set([1, 2, 3, true, 'hello world', '你好世界', function () {}, ...])
    + 为什么是一个类似于数组一样的数据, 还要写一个数组
      => 直接写数组不好吗 ?
      => 他虽然是按照数组传递参数
      => 他有一个特点, 不接受重复数据
        -> 如果你的数组里面有了重复的数据
        -> 会直接干掉
    + 自己的方法和属性
      1. size 属性 -> 表示数据结构里面有多少数据
        => 在数组里面使用 length
        => 在 SET 数据结构里面使用 size
      2. add() 方法 -> 向该数据集合里面添加数据使用
        => 添加重复数据的时候不会添加成功
        => 语法: 该数据结构.add(要添加的内容)
      3. delete() 方法 -> 用来删除数据结构里面的某个数据
        => 语法: 该数据结构.delete(要删除的数据)
      4. clear() 方法 -> 用来清除数据结构中的所有数据
        => 语法: 该数据结构.clear()
      5. has() 方法 -> 用来判断该数据结构里面有没有某个数据
        => 语法: 该数据结构.has(你要判断的数据)
        => 返回值:
          -> true: 表示有
          -> false: 表示没有
      6. forEach() 方法 -> 用来遍历该数据结构
        => 注意: 这个 forEach 不是数组常用方法, 是 Set 自己的方法
        => 语法: 该数据结构.forEach(function () {})
      7. ... 运算符 -> 把数据结构还原成一个数组
        => 和 Array.from() 一样的功能
        => 语法: ...该数据结构
        => 还原成一个数组

    作用: 数组去重
      + 因为它可以把一个数组里面的重复数据都干掉
      + 因为它不接受重复数据
      + ... 还可以还原成一个数组

  MAP 数据结构
    + 是一个类似于 对象 的数据结构
      => 对象里面的 key 只能是 string 数据类型
      => Map 数据结构里面的 key 可以是复杂数据类型
      => 我们又管 Map 数据结构叫做 值=值 的数据结构
      => 不接受重复数据
    + 创建
      1. 内置构造函数创建
        => var m1 = new Map()
    + 创建的时候直接写入一些数据
      => 写入需要写成一个二维数组的形式
      => var m1 = new Map([ [ 每一项的 key, 每一项的 value ], [ key, value ] ])
    + 常用方法和属性
      1. size 属性 -> 用来获取该数据结构的长度
      2. set() 方法 -> 用来向该数据结构里面添加成员的
        => 语法: 该数据结构.set(key, value)
        => 这个 set 是 Map 数据结构的方法 set
          -> 不是 Set 数据结构
          -> new Set([])
      3. get() 方法 -> 用来获取数据结构里面某一个成员的
        => 语法: 该数据结构.get(你要获取的key)
        => 返回值: 你获取这个 key 的 value
      4. delete() 方法 -> 用来删除数据结构里面的数据的
        => 语法: 该数据结构.delete(你要删除的key)
      5. clear() 方法 -> 用来清除该数据结构的所有数据
        => 语法: 该数据结构.clear()
      6. has() 方法 -> 用来检测有没有某个数据的
        => 语法: 该数据结构.has(你要检测的 key)
        => 返回值:
          -> true: 表示有
          -> false: 表示没有
      7. forEach() 方法 -> 用来遍历该数据结构的
        => 使用的不是数组常用方法, 是自己的
        => 语法: 该数据结构.forEach(function () {})
      8. ... 运算符 -> 还原成一个数组
        => 还原成一个 二维数组的样子
        => 语法: [...该数据结构]
        => 里面每一个小数组都有两个成员
          -> [0] 就是数据结构里面的 key
          -> [1] 就是数据结构里面的 value
posted @ 2020-03-17 22:51  Mine-  阅读(12)  评论(0编辑  收藏  举报