2021-02-24 06:41:23
数组去重的5种方法如下:
方法一:双重for循环去重
通过两层循环逐一比较元素。外层循环固定当前元素,内层循环从其族橘后开始遍历,若发现重复元素则删除。关键点在于删除后需调整内层循环索引(j--),避免因数组长度变化导致跳过元素。例如,初始数组[1,1,1,3,2,1,2,4]经处理后变为[1,3,2,4]。
方法二:单层for循环结合排序
先对数组排序(默认按字庆穗慧符串排序),使相同元素相邻。再通过单层循环比较相邻元素,若重复则删除。需注意删除后调整外层索引(i--),否则会漏检后续元素。例如,排序后数组[1,1,10,11,2,20,3]经处理后可能保留非预期顺序。
方法三:利用indexOf检测首次出现
创建空数组newArr,遍历原数组时用indexOf检查元素是否已存在于newArr中。若返回-1(未找到),则将元素加入newArr。时间复杂度为O(n²),适用于小规模数据。例如,原数组[1,2,1,3]处理后为[1,2,3]。
方法四:利用对象属性唯一性
通过对象obj记录已出现元素。遍历数组时,若元素未作为obj的属性存在(返回undefined),则将其加入结果数组newArr,并标记为已存在。时间复杂度为O(n),效率较高。例如,原数组[1,2,2,3]处理后为[1,2,3]。
方法五:标记重复元素后过滤
遍历数组时,若发现重复元素则将其标记为特定值(如0),最后过滤掉标记值。需确保数据中不包含标记值,或替换为其他誉答无效值。例如,原数组[1,1,2,3]处理后可能为[1,2,3](需后续过滤0)。