js基础学习之set
背景
需求: 数组去重
给定一个数组,删除所有的重复元素,使得每个元素只出现一次
const numbers = [2,3,4,4,2,3,3,4,4,5,5,6,6,7,5,32,3,4,5]
console.log([...new Set(numbers)])
1 set基础学习
1.1 Set简述
Set是ES6新增的一种新的数据结构,类似于数组,但是成员是唯一且无序的,没有重复的值
ps: 意味着set里面添加重复的值会自动过滤掉
- 问题一: 那能不能提供一个数组,然后转换成Set,那Set中的成员是唯一的就完成去重了
- 问题二: 数组和Set是否可以相互转换
1.2 Set属性以及相关方法
1.2.1 构造函数Set()
Set()构造函数,创建Set对象,可以存储任意类型的唯一值
- 任意类型: 无论是基本类型或者是对象引用或者函数(具体分析见实例方法add)
- 唯一值:成员值不重复(具体分析见下面)
语法分析
new Set()
new Set(iterable)
- 只能通过new 构建,因为这是构造函数
- 参数要么为空(或者null)表示新的Set为空; 要么为可迭代对象会将非重复元素添加到新的Set中
- 返回一个Set对象
示例分析
1.创建空的Set对象
let mySet = new Set();
//或者传参null
let mySet = new Set(null);
2.创建只含有一个元素1的Set对象
//参数只能是可迭代对象或者null或者空;否则会报错
let mySet = new Set(1);
/*VM109:1 Uncaught TypeError: number 1 is not iterable (cannot read property Symbol(Symbol.iterator))
at new Set (<anonymous>)
at <anonymous>:1:13
*/
//想要创建只含有一个元素1的Set对象下面提供两种思路
//思路一:创建空的,然后往Set里面新增,Set里面提供实例方法Set.prototype.add()
let mySet = new Set();
mySet.add(