数组去重

在逆战班学习了数组去重,那么今天就总结下数组的去重,何为数组去重,就是说在数组中有很多单元,其中有部分单元的内容是重复的,我们就是要获取不重复的数组,这样就要将重复的单元去除,这就是数组去重的基本原理:

我们先来看下数组去重的代码:

在这里插入图片描述

现在对代码做一个解释:

代码第一行:模拟一个新数组,数组内存储的数值为[11,11,22,33,44,22,11,

44,55,66,55,33]。

代码第二行:定义一个新的空数组,用以储存不重复的数值。

代码第三行:通过forEach来遍历数组arr找到每一个单元存储的数值。forEach循环遍历的语法格式为:数组/变量.forEach(function(形参1,形参2,形参3){执行的代码}),其中形参1为每一个单元存储的数值,形参2为每一个单元对应的索引下标,形参3为原始数组。如果只设置一个参数,那么就代表着每一个单元存储的数值,如果设置两个,那么第一个为存储的数值,第二个为索引下标,一般我们会设置这两个参数,但是在这儿,我们只设置了一个,因为我们只需要拿到数值就可以了。

代码第四行:这是做一个判断,通过indexOf来判断:它的语法格式为

数组.indexOf(),它的作用是查找()内的数值是不是在这个数组内,如果不在的话数组.indexOf() === -1;否则就不在。我们是通过这个来判断()内的数值是否在新数组中。

代码第五行:它的作用为if判断为真时的执行语句,也就是说当if判断为真的时候会执行这个代码。这个代码的意思是将()内的数值写入新的数组中,它
的格式为 数组.push()。意思就是将()内的内容写入数组内。

我们还可以通过for…in循环遍历来实现整个过程:

在这里插入图片描述

用for…in循环的话,与forEach有这些区别:首先for…in这个循环遍历的是数组的索引下标,所以将forEach中的val换成arr[key]即可。

纵观整个过程,它的原理就是,通过数组/变量.forEach(function(形参1,形参2,形参3){执行的代码})遍历每一个数值,然后利用数组.indexOf()来查找每一个原始数组中的数值是否在新数组中,如果不在的话就通过数组.push()写入新数组。这样我们就会实现数组的去重。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值