个人博客 个人博客
首页
  • 前端
  • 后端
  • Git
  • Docker
  • 网络
  • 操作系统
工具
阅读
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

董先亮

前端react开发
首页
  • 前端
  • 后端
  • Git
  • Docker
  • 网络
  • 操作系统
工具
阅读
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • HTML

  • CSS

  • JavaScript

    • 防抖与节流
    • 本地存储
    • PWA
    • 地理位置
    • 对象 Object
    • 事件坐标详解
    • 常用函数
    • class类
    • Array 数组
    • 其他
    • blob下载文件
    • 深度克隆
    • 模块化
    • 常用工具函数
    • 拖拽
    • Map与Set
    • TypeScript

    • 前端基础
    • JavaScript
    NeverStop1024
    2023-02-16
    目录

    Map与Set

    # 1. Set

    集合Set类似于数组,但成员都是唯一且无序的,是ES6提供的一种新的数据结构。 优点:处理基本数据类型非常好用

    开发中的应用:

    1. 数组去重
    const mySet = new Set([1, 2, 3, 4, 4]);
    Array.from(new Set([1,1,1,2,3])) // 去重后转回数组
    
    1
    2
    1. 元素查找
    const mySet = new Set(['a', 'bb', 'ccc']);
    const ifB = mySet.has('bb') // true
    
    1
    2
    1. 求并集
    const a = new Set([1, 2, 3]);
    const b = new Set([4, 3, 2]);
    const union = new Set([...a, ...b]); // {1, 2, 3, 4}
    
    1
    2
    3
    1. 求交集
    const a = new Set([1, 2, 3]);
    const b = new Set([4, 3, 2]);
    const intersect = new Set([...a].filter(x => b.has(x))); // {2, 3}
    
    1
    2
    3
    1. 求差集
    const a = new Set([1, 2, 3]);
    const b = new Set([4, 3, 2]);
    const difference = new Set([...a].filter(x => !b.has(x))); // {1}
    
    1
    2
    3
    1. 其他基础方法
      1. 增 add()
      2. 删 delete()(单个) / clear()(所有)
      3. 转为数组 Array.from()
      4. 获取长度 set.size
    2. 遍历操作
      1. forEach() / map() / for...of... / filter

    # 2. Map

    Map与对象的区别

    1. 键:
      1. 对象:字符串或Symbol
      2. Map:任意类型
    2. 获取大小
      1. 对象: Object.keys(obj).length
      2. Map: map.size
    3. 遍历顺序
      1. 对象:返回的键是无序的
      2. Map:按插入顺序返回键值

    应用: Map应看作普通对象的补充,不应该当作替代品

    编辑 (opens new window)
    上次更新: 2023/02/17
    拖拽
    interface 与 type

    ← 拖拽 interface 与 type→

    最近更新
    01
    mock使用
    07-12
    02
    websocket即时通讯
    07-12
    03
    前端面试题
    07-09
    更多文章>
    Theme by Vdoing | Copyright © 2022-2023 NeverStop1024 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式