ES6中Set类型的基本使用

在ES6之前,存储数据的结构主要有两种:数组、对象
在ES6中新增了另外两种数据结构(存放数据的方式):Set、Map,以及他们的另外形式WeakSet、WeakMap。

Set的基本使用

Set是一个新增的数据结构,可以用来保存数据,类似于数组,但是和数组的区别是元素不能重复。创建Set需要通过Set构造函数(暂时没有字面量创建的方式)。

1) 创建Set结构

// 1.创建Set结构
const set = new Set()
// 想要向Set类型中添加数据使用add()
set.add(10)
set.add(20)
set.add(40)

// Set中元素不能重复,如果重复添加同一个数值,最终只存在一个
set.add(10)
console.log(set);

在这里插入图片描述
2)Set结构添加对象时特别注意

// 1.创建Set结构
const set = new Set()
// 想要向Set类型中添加数据使用add()
set.add(10)
set.add(20)
set.add(40)

// 2.添加对象时特别注意:
// 如果重复向Set类型的元素中添加多个对象,会显示这两个对象都在内存中,因为这是两个不同的对象,其中保存的是不同的地址
set.add({
    
    })
set.add({
    
    })

// 但是使用下面这种方式创建对象
const obj = {
    
    }
// 这种方式向set中添加对象,添加的是同一个对象
set.add(obj)
set.add(obj)

console.log(set);

在这里插入图片描述
3)应用场景-给数组去重

// 3.对数组去重(去除重复的元素)
const arr = [33, 10, 25, 30, 33, 26]

const arrSet = new Set(arr)   // Set()括号中传入可迭代对象
const newArr1= Array.from(arrSet)    // arrSet实际上还是Set类型,将它变换为数组类型
const newArr = [...arrSet]    // Set类型的也支持使用展开运算符

console.log(newArr,newArr1);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44482048/article/details/129151987