方法一、利用ES6 Set去重(ES6中最常用)
1 | function unique (arr) { |
方法二、利用for嵌套for,然后splice去重(ES5中最常用)
1 | function unique(arr){ |
- 双层循环,外层循环元素,内层循环时比较值。值相同时,则删去这个值。
- 想快速学习更多常用的
ES6
语法
方法三、利用indexOf去重
1 | function unique(arr) { |
新建一个空的结果数组,for
循环原数组,判断结果数组是否存在当前元素,如果有相同的值则跳过,不相同则push
进数组。
方法四、利用sort()
1 | function unique(arr) { |
利用sort()
排序方法,然后根据排序后的结果进行遍历及相邻元素比对
方法五、利用对象的属性不能相同的特点进行去重
1 | function unique(arr) { |
方法六、利用includes
1 | function unique(arr) { |
方法七、利用hasOwnProperty
1 | function unique(arr) { |
利用hasOwnProperty
判断是否存在对象属性
方法八、利用filter
1 | function unique(arr) { |
方法九、利用递归去重
1 | function unique(arr) { |
方法十、利用Map数据结构去重
1 | function arrayNonRepeatfy(arr) { |
创建一个空Map
数据结构,遍历需要去重的数组,把数组的每一个元素作为key
存到Map
中。由于Map
中不会出现相同的key
值,所以最终得到的就是去重后的结果
方法十一、利用reduce+includes
1 | function unique(arr){ |
方法十二、[…new Set(arr)]
1 | [...new Set(arr)] |
代码就是这么少—-(其实,严格来说并不算是一种,相对于第一种方法来说只是简化了代码)