数组----数组去重(chong)篇

各位朋友大家好,大家点开这篇文章让我感到非常荣幸。这一次给大家分享的是数组去重的小知识点,今天我主要说的是 indexOf 去重方法。

indexOf

首先我们说一下 indexOf 的相关知识点。

           数组.indexOf() --- 字符首次出现的位置

        // 查找数组或者字符串中是否有某个数值后者某个字母
        // 如果有这个内容,返回值是 这个内容的 索引下标
        // 如果没有这个数据,返回值是 -1 
        // 这里执行的是 === 全等比较

当然能够查出字符首次出现的位置,那就应该也会查出最后一个字符出现的位置啦!在这里,我们来扩展一下哦!!!

           数组.lastIndexOf() --- 字符最后一次出现的位置

        // 数组,字符串都可以使用
        // 有符合条件的数据,执行结果是最后一次出现位置的索引下标
        // 没有符合条件的数据,执行结果是-1
        // 进行的也是 === 全等比较

下面是实例讲解时刻

        <script>
            var arr = [1,1,1,1,1,'w',2,2,2,2,2,'w','w','w',2,3,'true',3,'true',3,3,3,'true',3,4,4,4,4,5,5,5,5,5]
            
            //建立一个空数组,来存储原始数组中,不重复数据
            var nu =  [];

            // 循环遍历,获取原始数组arr中的所有数值
            arr.forEach(function(v){

                // 在新数组中,查找当前获取的原始数组的数值
                // newArr.indexOf(v) 执行结果如果是 -1
                // 证明在新数组中,没有这个原始数组的数据
                if(nu.indexOf(v) === -1){
                    nu.push(v);
                }
            })
            console.log(nu);

        </script>
基本思路:
    1、建立一个新的数组,将原始数值中的数值,向新的数组中写入
    2、如果这个数值不存在于新的数组中,就执行写入,如果已经存在,就不写入

运行结果图:

 

若是字符串该如何去重???

在这里我们今天还用 indexOf 的方法进行去重

解题思路和上面的基本相同,我们这里就不再多说什么啦!

    <script>
        var str = 'aaabbbbcccddddeeeeefffff';

        // 原理相同,只是字符串不能使用forEach()循环

        var newStr = '';

        // 通过for...in来循环遍历,字符串
        // key存储的是每个字母的索引下标
        for(var key in str){
            // str[key] 是 当前循环,获取的索引下标,对应的字符串中的字母
            // newStr.indexOf(str[key]) 判断 新字符串中,是否有当前这个字母
            // 如果结果是 -1 证明新字符串中没有这个字母
            if(newStr.indexOf(str[key]) === -1){
                // 执行字符串拼接操作,将这个字母拼接入新的字符串中
                newStr += str[key];
            }
        }

        console.log(newStr);
    </script>

运行结果图:

切记,这里字符串去重不能够用 forEach()循环

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值