前景介绍
这次更新的内容会很少,就一个描述一个问题,那就是标题上面写的,数组去重。如果去百度JS 数组去重,你会发现有各种各样的数组去重方式。常见的数组去重方式有:
- 双循环去重
- for循环与includes()去重
- for循环与indexOf()去重
- for循环与Array.splice()去重
- Array.filter() + indexOf去重
- Array.sort()去重
- Array.forEach()与inclus()去重
- 利用对象属性的特性去重
- ···
- ···
正文
我这次不讲这些东西,讲的是我学es6发现的一个新的数组去重的方法,那就是使用Set()。
Set 对象的介绍
Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用。
Set 中的特殊值
Set 对象存储的值总是唯一的,所以需要判断两个值是否恒等。有几个特殊值需要特殊对待:
- +0 与 -0 在存储判断唯一性的时候是恒等的,所以不重复;
- undefined 与 undefined 是恒等的,所以不重复;
- NaN 与 NaN 是不恒等的,但是在 Set 中只能存一个,不重复。
上边的介绍取自菜鸟教程 ES6 Map 与 Set,这是菜鸟教程的官网菜鸟教程 - 学的不仅是技术,更是梦想!,学技术只要努力在哪里都可以,网上资源那么多就看你要不要去学习了,好像扯的有点远,回归正题,使用Set进行数组去重,下面重点来了。
let arr=[1,2,3,1,3,2,4,2,3,1,4,2,1,3,4,2,3] //定义一个数组
arr=new Set(arr) //将数组放进new Set()里面
arr=[...arr] //解构
console.log(arr) // [1,2,3,4]
我当时看到这种写法惊为天人,这种写法也太方便了吧,再也不用写循环了(视情况而定)。看到上边的代码我觉得还是有点麻烦,我可是立志要成为高级程序员的人,所以把代码合并在一起就有了下边的一行数组去重代码。
let arr=[1,2,3,1,3,2,4,2,3,1,4,2,1,3,4,2,3]
arr=[...new Set(arr)]
console.log(arr) // [1,2,3,4]
截图为证:
