当前位置: 首页 > article >正文

ES6之Set集合(通俗易懂,含实践)

Set是什么?它的方法有哪些?它在实例开发中有什么作用?
让我为大家介绍一下吧!
ES6提供了新的数据结构 Set(集合) 。它类似于数组,但成员的值是唯一的,常用于数组去重。

创建方法:

    let s = new Set()
    console.log(s)

在这里插入图片描述
它属于什么类型?

    console.log(typeof s) //object

我们通常在set中写入数组

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    console.log(s)

在这里插入图片描述
由此可见,set 可以自动帮我们去重

Set 对象的几个常用方法和属性

1.size
可以获取元素的个数

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    console.log(s.size) //4 

2.add( )
向 Set 添加新元素

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    s.add("四大名著")
    console.log(s) 

在这里插入图片描述
3.delete( )
删除由其值指定的元素

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    s.add("四大名著")
    s.delete("四大名著")
    console.log(s) 

在这里插入图片描述
4.has( )
如果值存在则返回 true,否则false

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    console.log(s.has("西游记")) //true
    console.log(s.has("四大名著")) //false

5.clear( )
清空

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    s.clear()
    console.log(s)

在这里插入图片描述

6.我们可以使用for…of遍历

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    for(let v of s) {
        console.log(v)
    }

在这里插入图片描述
7.keys( )

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    console.log(s.keys())

在这里插入图片描述
8.forEach( )
为每个元素调用回调

    let s = new Set(["西游记","三国演义","水浒传","红楼梦","西游记"])
    s.forEach(item=>{
        console.log(item)
    })

在这里插入图片描述

实践

1.数组去重

    let arr = [1, 2, 3, 3, 2, 1, 4, 5, 1]
    let result = [...new Set(arr)]
    console.log(result)

在这里插入图片描述

2.交集

    let result = [...new Set(arr1)].filter(item=>new Set(arr2).has(item)
    // {
    //     // 把arr2也变成一个集合
    //     let s2 = new Set(arr2)
    //     // 判断arr2里是否有arr1里的元素
    //     if(s2.has(item)){
    //         return true
    //     }else {
    //         return false
    //     }
    // }) 
    )
    console.log(result)

在这里插入图片描述

3.并集

    let arr1 = [1, 2, 3, 3, 2, 1, 4, 5, 1]
    let arr2 = [1,2,3,3,2,4]
    let result = [...new Set([...arr1,...arr2])]
    console.log(result)

在这里插入图片描述

4.差集

    let arr1 = [1, 2, 3, 3, 2, 1, 4, 5, 1]
    let arr2 = [1,2,3,3,2,4]
    // 取反
    let result = [...new Set(arr1)].filter(item=>!(new Set(arr2).has(item)))
    console.log(result);

在这里插入图片描述
感谢大家的阅读,如有不对的地方,可以向我指出,感谢大家!


http://www.kler.cn/a/107600.html

相关文章:

  • idea 解决缓存损坏问题
  • 【go从零单排】Random Numbers、Number Parsing
  • 无人机动力测试台如何快速外接第三方传感器
  • 【韩老师零基础30天学会Java 】07章 面向对象编程(基础)
  • 超子物联网HAL库笔记:定时器[外部模式]篇
  • 【C++】 list 与 string 基础与实现字符串操作
  • 外卖霸王餐系统 支持小程序,分站合作
  • 关于pycharm中句号变成点的问题
  • Redis 与 MySQL 一致性 实现方案
  • RSA:基于小加密指数的攻击方式与思维技巧
  • SpringCore完整学习教程5,入门级别
  • 单元测试Testng
  • vue中如何获取当时时间时分秒
  • “第五十三天”
  • 数据库批处理
  • C++学习笔记之四(标准库、标准模板库、vector类)
  • slice()和splice()用法
  • 【笔录】TVP技术沙龙:寻宝AI时代
  • dd命令用法学习,是一个功能强大的工具
  • 走进人工智能的大门:打造职业梦想的契机
  • Vue+ElementUI项目打包部署到Ubuntu服务器中
  • C# 图解教程 第5版 —— 第11章 结构
  • Vue3问题:如何实现密码加密登录?前后端!
  • 查询和下载国自然科学基金
  • 算法——贪心算法
  • 适用于嵌入式arm的ffmpeg编解码