JS数组去重

  对于刚接触JS的人员来说,有很多东西是要学习的,为了帮助大家更快、更好地学习相关常用知识,小编今天给大家介绍一下JS数组去重,那么如何实现JS数组去重呢?以下小编总结了几种方法,大家可以参考一下。

  对于刚接触JS的人员来说,有很多东西是要学习的,为了帮助大家更快、更好地学习相关常用知识,小编今天给大家介绍一下JS数组去重,那么如何实现JS数组去重呢?以下小编总结了几种方法,大家可以参考一下。


  1、使用双重for循环,再利用数组的splice方法去重。


  注:array.splice(index,howmany)用于添加或删除数组中的元素,返回含有被删除的元素的数组。如果未删除任何元素,则返回空数组。

  2、利用数组的indexOf方法去重。


  注:array.indexOf(item,statt)返回数组中某个指定的元素的位置,没有则返回-1。

  3、利用数组的sort方法去重(相邻元素对比法)。


  注:先对arr进行sort排序,再对排序后的数组进行相邻元素比较。

  4、利用ES6中的Set方法去重。

  5、利用reduce方法去重。


  注:array.reduce(function(accumulator,currentValue,currentIndex,array),initialValue)


  initialValue:初始值(可选)


  accumulator:reduce方法多次执行的累积结果。若有提供initialValue,则第一次循环时accumulator的值便为initialValue;若未提供initialValue,第一次循环时accumulator的值为数组第一项arr[0]。(必需)


  currentValue:数组循环当前处理的值。若有提供initialValue,第一次循环currentValue的值为数组第一项arr[0];若未提供initialValue,第一次循环由于arr[0]成了accumulator的值,所以currentValue只能从arr[1]开始。(必需)


  currentIndex:数组循环当前处理值的索引。


  array:当前正在被循环的数组。

  6、利用数组的filter方法去重。

  7、利用数组的includes去重。


  注:arr.includes(指定元素(必填),指定索引值(可选,默认值为0)),有值返回true,没有则返回false。

  8、利用ES6中的Map方法去重。

  9、利用函数递归去重。

  10、利用对象的属性不能相同的特点去重。


  注:用数组项作为对象的属性会自动去除相同的值。

  以上10种方法就是小编为大家总结的JS数组去重的基本方法。大家可以作为学习参考使用。在学习JS之前大家一定要有一定的编程基础,在这基础之上再进行系统的JS学习,今天的教程希望对大家有所帮助。


  本篇文章使用以下硬件型号:联想小新Air15;系统版本:win10;软件版本:ECMAScript 2021。

  对于JS,大家可能算得上是有所了解,那么对于其中的一个重要部分:JS数组去重,大家又了解多少呢?那么今天小编就为大家介绍一下JS数组去重的几种方法,和小编一起来学习一下吧!


  1,遍历数组的所有元素,然后让它与其后所有的数组元素进行比较,如果相等则删除重复的元素,并重新与被删除元素所在索引的元素接着进行比较。


  例如:

  j–;是很必须的一步,数组的splice方法是会改变原数组的,当重复元素被删掉之后,下一个位置上的元素会填充到当前索引位置,此时索引为j的位置上是一个未经比较的新值,所以需要通过j––防止j之后跳过与当前索引位置上的比较。


  2,将数组排序之后相邻的两个元素两两比较,如果后一个元素与前面的元素相等则删除后边的元素,并让前一个元素与其后的元素重新比较。

  此处i–原理与方法一相同,为了保证当查出重复元素时,要让当前元素与其后填充来的元素再次比较。


  3,创建一个新数组,然后遍历要去重数组的所有元素并依次向新数组添加,如果要添加的元素在新数组当中不存在则将其push进去,如果已存在则跳过本次遍历,进行下一次遍历。

  此方法还可以用另外一种条件判断是否向新数组中push,不是判断是否存在于新数组,改为判断当前元素的索引与当前元素第一次出现的索引是否相等,如果相等则说明是第一次出现,就将其push新数组,如果不相等则说明不是第一出现,不需要做push操作。

  4,利用对象的思想如果对象里没有这个属性的话就会返回undefined,创建一个空对象和空数组,遍历要去冲的数组的元素,判断对象中以数组元素为属性名时是否为undefined,如果是则给它设置一个值假设为1,并将改元素push进新数组中,如果不为undefined则不作任何操作。

  以上内容就是小编为大家带来的关于JS数组去重怎么做的全部教程啦,希望它可以帮助到有需要的小伙伴们,相信大家只要在课下掌握理解,不要死记硬背,并勤加练习,一定可以在JS领域取得自己的收获,一起加油吧!


  本篇文章使用以下硬件型号:联想小新Air15;系统版本:win10;软件版本:Java 2019。

相关教程

特惠
充值
7折购
今日还在继续学习的你,太棒了!
7
折扣券可用于
年费无限VIP
立 即
使 用
此活动优惠不可与其他活动叠加使用
有效期:000000
消息
登录即可查看消息记录
建议
意见
官方
客服
在线咨询客服热线

您可以与在线客服进行沟通获得帮助

工作日:9:00~22:00节假日:9:00~18:00

联系在线客服

您可以电话联系客服进行沟通获得帮助

工作日:9:30~18:30

400-862-9191
虎课
积分
免费学习89000+个教程!
配套素材、源文件一键下载!
昨日学员已学习了27,078
并提交了210份作业!
登录后立即学习!
loading
微信扫码关注即可登录
您需要同意协议才可以进行登录
登录虎课网,每天免费学课程全站 89000+ 视频会员教程 | 每日可免费学 1
为确保账户信息安全
请先进行真实姓名验证后进行充值付款
立即验证