zoukankan      html  css  js  c++  java
  • 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
    
  • 相关阅读:
    Socket和ServerSocket学习笔记
    跨域资源共享的10种方式
    javascript执行环境(执行期上下文)详解
    js 自动插入分号
    原型对象prototype和原型属性[[Prototype]]
    构造自己的动画函数:animation,stop功能的实现
    sizzle源码分析 (4)sizzle 技术总结及值得我们学习的地方
    sizzle源码分析 (3)sizzle 不能快速匹配时 选择器流程
    sizzle源码分析 (2)ID 类 tag querySelectorAll 快速匹配
    sizzle源码分析 (1)sizzle架构
  • 原文地址:https://www.cnblogs.com/Mine-/p/14098632.html
Copyright © 2011-2022 走看看