【基础必备】js的9种数组去重方法

高手,哪位知道,【基础必备】js的9种数组去重方法
最新回答
莎莎兔

2026-10-23 10:08:46

利用 ES6 Set 去重(ES6 中最常用)

特点:代码最少且不考虑兼容性。然而,此方法无法去除 {} 空对象,后续高阶方法将补充解决此问题。

利用 for 嵌套 for,然后 splice 去重(ES5 中最常用)

特点:采用双层循环,外层元素循环,内层循环比较值。值相同则删除。此方法无法处理 NaN 和 {},两个 null 直接消失。

利用 indexOf 去重

特点:创建空结果数组,for 循环原数组,判断结果数组中是否存在当前元素。相同值跳过,不同值则加入数组。此方法对 NaN、{} 去重不适用。

利用 sort()

特点:利用 sort() 排序方法,再遍历排序后的结果进行比对。此方法对 NaN、{} 去重不适用。

利用 includes() 去重

特点:此方法无法去除 {}。

利用 hasOwnProperty 去重

特点:利用 hasOwnProperty 判断元素是否存在对象属性,所有元素都能成功去重。

利用 filter 去重

特点:通过 filter 方法过滤,利用索引比对去重。此方法对 {} 去重不适用。

利用递归去重

特点:对 {} 和 NaN 的去重不适用。

利用 Map 数据结构去重

特点:创建空 Map 数据结构,遍历数组,将每个元素作为 key 存入 Map。Map 不会出现相同 key,最终结果即为去重后的数组。此方法对 NaN、{} 去重不适用。