JavaScript 学习-13.Set 集合对象

前言

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

Set 集合

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

const s1 = new Set();   // 空集合
console.log(s1)   // Set(0)

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

const s1 = new Set([1, 2, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}

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

const s1 = new Set([1, 2, 3, 3]);   // 传 arry 数组
console.log(s1)   // Set(3) {1, 2, 3}

size 属性获取集合个数

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对象。

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元素

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() 清除所有的成员,没有返回值

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) 判断是否存在,返回布尔值

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是集合中的成员

const s1 = new Set(['a', 'b', 'c']); 
s1.forEach(function(item){
    console.log(item);  // item是集合中的成员
})

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

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

与Arry数组不一样地方

Set集合不可以用下标取值
Set集合没有length属性而是size
Set集合可以通过Array.from转为数组

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...