1、利用ES6中set去重 let arr=[1,1,2,3,4,4,5] arr=[...new Set(arr)] console.log(arr) 2、利用两个for循环嵌套,然后splice去重(ES5中最常用) 先定义一个包含原始数组第一个元素的数组,然后遍历原始数组,将原始数组中的每个元素与新数组中的每个元素进行比对, 如果不重复则添加到新数组中,最后返回新数组;因为它的时间复杂度是O(n^2),如果数组长度很大,那么将会非常耗费内存 3、利用indexOf去重1 数组内是否有该元素,有返回1,没有返回-1 数组的indexOf()方法可返回某个指定的元素在数组中首次出现的位置。该方法首先定义一个空数组res, 然后调用indexOf方法对原来的数组进行遍历判断,如果元素不在res中,则将其push进res中, 最后将res返回即可获得去重的数组 新建一个空的结果数组,for 循环原数组,判断结果数组是否存在当前元素,如果有相同的值则跳过,不相同则push进数组。 利用indexOf去重2 利用indexOf检测元素在数组中第一次出现的位置是否和元素现在的位置相等,如果不等则说明该元素是重复元素 4、利用sort 利用sort()排序方法,然后根据排序后的结果进行遍历及相邻元素比对。 这种方法首先调用了数组的排序方法sort(), 然后根据排序后的结果进行遍历及相邻元素比对,如果相等则跳过改元素,直到遍历结束 5、利用includes 检测数组是否有某个值 6、利用filter 过滤器 7、利用递归去重 8、利用map 9、reduce+includes 10、利用对象属性去重 创建空对象,遍历数组,将数组中的值设为对象的属性,并给该属性赋初始值1,每出现一次,对应的属性值增加1, 这样,属性值对应的就是该元素出现的次数了 11 Array.from与set去重