关于数组的那些事-数组去重

数组去重的方法很多,我在这里整理了其中一种方法,并且就着例子介绍了下其中的思路。

1.数组去重的js代码如下:

var arr1=[5,16,4,1,5,14,16];

var arr2=[];
for (var i=0;i<arr1.length;i++) {
        if (arr2.indexOf(arr1[i]) == -1) {
                arr2.push(arr1[i]);
        }
}

console.log(arr2);


2.关于数组去重,我使用的是js的indexOf()这个方法:

        indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
        如果要检索的字符串值没有出现,则该方法返回 -1。


3.整体的思路如下:

        先在数组1中从第一个值开始循环。
        检索这个值有没有存在 当前的数组arr2中,
        arr2.indexOf(arr1[i])  (i取值范围为  0  到  数组的长度-1 )
        不存在时返回值 -1。
        进入if判断: 当值为-1时,将[当前下标]的 [数组arr1元素]即arr1[i] 添加到[数组arr2]中.
        之后继续 for循环 检索if判断。
        最后的数组arr2就是我们去重后得到的数组。

====
如例:

        在我们上面的代码中,arr1[0]值为5,当前数组arr2中为空,arr1[0]不存在数组arr2中
        ==>所以将arr1[0]的值即第一个5添加到数组arr2。
        然后for循环一直进行if判断添加。

        当for循环进行到arr1[4]即第二个5时,
        此时这个数字在数组arr2中已经存在了。( 此时的arr2为[5,16,4,1] )
        ==>不满足 arr2.indexOf(arr1[i]) == -1
        所以不会进入if语句里面,这个arr1[4]的值也不会添加到数组arr2中去
====


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值