利用 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、{} 去重不适用。
本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。