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

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("西游记")) //trueconsole.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.lryc.cn/news/205463.html

相关文章:

  • 深度学习标注工具(包括自动标注)总结——持续更新
  • 阿里云核心产品list
  • 矢量图形编辑软件 illustrator 2023 mac 中文软件特点
  • vue按特定字符串切割后端传输的图片路径
  • Spring底层原理(三)
  • ElementPlus表格中的背景透明
  • 【会议征稿通知】2024第四届神经网络、信息与通信工程国际学术会议(NNICE 2024)
  • PyCharm改变代码背景图片的使用教程
  • BadNets: Identifying Vulnerabilities in the Machine Learning Model Supply Chain
  • Kubernetes速成课程:掌握容器编排的精髓
  • 【数据库】分组数据 GROUP BY、HAVING
  • “唯品会VIP商品API:一键获取奢侈品详情,尊享品质生活!“
  • uniapp解决iOS切换语言——原生导航栏buttons文字不生效
  • idea 基础设置
  • Rockchip Uboot CmdLine 作用 来源 常用参数
  • MySQL表导出
  • HTML页面获取URL传递的参数值
  • mac安装jenkins
  • asp.net网球馆计费管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • 动手学深度学习——第五次学
  • python实验16_网络爬虫
  • 家长扫码查成绩
  • 【转】多台服务器共享session问题
  • 页面置换算法的模拟实现及命中率对比
  • 说一说ajax的请求过程?
  • leetcode 84. 柱状图中最大的矩形
  • ubuntu 安装 gnome 安装 xrdp
  • 微信小程序——后台交互
  • 3D模型如何添加表面贴图?
  • C语言之函数详解