前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaScript 学习-13.Set 集合对象

JavaScript 学习-13.Set 集合对象

作者头像
上海-悠悠
发布2022-05-20 11:10:34
2550
发布2022-05-20 11:10:34
举报
文章被收录于专栏:从零开始学自动化测试

前言

集合是无序的,并且集合中的元素是唯一的。JavaScript ES6 提供了新的数据结构 Set, 可以创建集合对象。

Set 集合

创建一个set实例,使用new Set()

代码语言:javascript
复制
const s1 = new Set();   // 空集合
console.log(s1)   // Set(0)

可以传一个数组来初始化集合对象

代码语言:javascript
复制
const s1 = new Set([1, 2, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}

如果数组中有重复的成员,set集合会去重

代码语言:javascript
复制
const s1 = new Set([1, 2, 3, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}

size 属性获取集合个数

代码语言:javascript
复制
const s1 = new Set([1, 2, 3, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}
console.log(s1.size)   // 3

集合操作

集合对象常用的几个操作

  • .add() 在Set对象尾部添加一个元素。 返回该Set对象。
  • .delete(value) 移除Set中与这个值相等的成员
  • .clear() 清空set对象内的所有成员。
  • .has(value) 判断set 中是否存在该值,返回布尔值

.add() 添加一个成员。

在Set对象尾部添加一个成员。返回该Set对象。

代码语言:javascript
复制
const s1 = new Set([1, 2, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}
s1.add(4)
console.log(s1)   // Set(4) {1, 2, 3, 4}

.delete(value) 删除一个成员

移除Set中与值为value元素

代码语言:javascript
复制
const s1 = new Set([1, 2, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}
s1.delete(2)
console.log(s1)   // Set(2) {1, 3}

.clear() 清除所有的成员

clear() 清除所有的成员,没有返回值

代码语言:javascript
复制
const s1 = new Set([1, 2, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}
s1.clear()
console.log(s1)   // Set(0) {size: 0}

.has(value) 判断是否存在

.has(value) 判断是否存在,返回布尔值

代码语言:javascript
复制
const s1 = new Set([1, 2, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}
console.log(s1.has(3))   // true

forEach方法遍历集合

使用forEach方法遍历集合,item是集合中的成员

代码语言:javascript
复制
const s1 = new Set(['a', 'b', 'c']); 
s1.forEach(function(item){
    console.log(item);  // item是集合中的成员
})

forEach方法里面可以传3个参数

  • item  成员
  • index  集合中没有索引,所以index也是成员本身
  • set   遍历的set集合本身
代码语言:javascript
复制
const s1 = new Set(['a', 'b', 'c']);   // 传 arry 数组
s1.forEach(function(item,index,set){
    console.log(item, index, set);
    //index和set一般不需要
})

并集(Union)、交集(Intersect)和差集(Difference)

Set 可以实现并集(Union)、交集(Intersect)和差集(Difference)

代码语言:javascript
复制
let a = new Set(['a', 'b', 'c']);
let b = new Set(['b', 'c', 'd']);

// 并集
let x = new Set([...a, ...b]);
console.log(x)   // Set(4) {'a', 'b', 'c', 'd'}

// 交集
let y = new Set([...a].filter(x => b.has(x)));
console.log(y)  // Set(2) {'b', 'c'}

// 差集
let z = new Set([...a].filter(x => !b.has(x)));
console.log(z)  // Set(1) {'a'}

Array.from转为数组

把集合转成数组

代码语言:javascript
复制
let a = new Set([1, 2, 4]);
c = Array.from(a);
console.log(c); //(3) [1, 2, 4]

总结:与Arry数组不一样地方 1.Set集合不可以用下标取值 2.Set集合没有重复元素 3.Set集合没有length属性而是size 4.Set集合可以通过Array.from转为数组

2022年第 11 期《python接口web自动化+测试开发》课程,6月5号开学!

2022年第 1 期《Python 测试平台开发》课程

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始学自动化测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • Set 集合
  • 集合操作
    • .add() 添加一个成员。
      • .delete(value) 删除一个成员
        • .clear() 清除所有的成员
          • .has(value) 判断是否存在
          • forEach方法遍历集合
          • 并集(Union)、交集(Intersect)和差集(Difference)
          • Array.from转为数组
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档