js数组去重最常用的5种方法

 2024-03-11 01:10:33  阅读 0

今天就来说说js数组去重的一些方法,包括网上看到的和我总结的一些。 共有5种方法。 希望对大家有所帮助。

第一种:遍历数组方法

这种方法是最简单、最直观、最容易理解的。 代码如下:

这个方法很容易理解,使用了()方法(()方法如果查询到则返回数组中第一个结果的索引,如果查询不到则返回-1)。 首先新建一个空数组来存放新的去重后的数组,然后遍历arr数组。 遍历过程中,判断数组中是否存在遍历到的arr中的元素。 如果没有,则直接添加。 如果已经存在(重复),则不进行任何操作,然后从头到尾遍历,正好达到了去重的目的。

第二种:数组下标判断方法

这种方法也比较容易理解。 代码如下:

这与第一种方法重叠。 咱们就不说多余的话了。 只要看看这里。 在遍历arr的过程中,如果在arr数组中找到当前值,并且返回的索引等于当前循环中的i,那么就证明这个值是第一次出现,所以将其压入新数组中。 如果后面再遍历已经出现过的值,则不会返回其索引。 () 方法仅返回找到的第一个值的索引。 因此,重复的会被传递,只出现一次的值会被存储到新的数组中,这也达到了去重的目的。

第三种方法:排序后相邻去除法

该方法使用了sort()方法,代码如下:

这个方法的思路是:先用sort()方法对arr进行排序,然后排序后,相同的肯定是相邻的,去掉即可。 首先,为新数组初始化一个arr[0],因为我们需要用它来与arr数组进行比较,所以for循环中i也从1开始。 我们将遍历到的 arr 中的值与新数组的最后一位进行比较。 如果它们相等,则通过它们。 如果它们不相等,则推入,因为数组已重新排序,并且重复项彼此相邻。 这确保了只有第一个重复值会被推入,其余的将与新数组一起推入。 如果元素相等则传递,这样也达到了去重的效果。

第四种方法:优化数组遍历方法

想法:两层for循环。 外层控制的是之前遍历到的arr中的元素,内层控制的是第一层访问到的元素之后的元素。 从第0个开始,让第0个元素与其后面的元素进行比较。 如果没有元素等于这个元素,则证明不存在重复。 将其推入新数组并存储。 如果有元素等于这个元素,则传递它,直接进入下一个循环。 从第一个开始,继续与后面的元素进行比较,如上进行,循环直至结束:所有不重复的元素都被压入新数组,而前面重复的元素则被丢弃,只留下如果去掉最后一个元素,此时就不再重复了,会推送一个新的数组,所有重复的元素都会被过滤掉,达到去重的目的。

第五种方法:数组遍历法

思路:同样是两层for循环。 外层for循环控制arr数组的遍历,内层for循环控制新数组的遍历。 从位置0开始,如果新数组不包含遍历到的arr数组中的这个元素,那么状态变量bl的值仍然为true,那么自然进入if,将这个值压入新数组中。 如果有这个元素,则表示重复,则将状态变量bl的值改为false,并跳出当前循环不会进入if内部,而是进入从外层开始的下一个循环。 如此循环往复,最终达到去重的效果。

标签: 数组 遍历 循环

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码