美文网首页
数组去重、字符串去重、找重复数归纳

数组去重、字符串去重、找重复数归纳

作者: 子母粉丝 | 来源:发表于2017-07-11 13:05 被阅读73次

    最近收集了些关于字符串数组去重,找重复数的方法,记录于下,分享给大家:

    字符串去重,

    思路:

    先对原来的字符串拆分为数组,然后使用数组方法sort()排序,然后拼接join(),

    使用正则方法进行判断,替换重复数:

    var str = "safsdfa4353asdf";
     var arr = str.split("");
    var arr1 = arr.sort();
    var str1 = arr1.join("");
    // 以上可以改写为:str.split("").sort().join("")
    str = str1.replace(/(.).*\1/g, "$1");
    
     console.log(str);
    

    数组去重

    思路:
    主要使用了indexOf()方法查询,代码如下

         var arr = ['abc','abcd','sss','2','d','t','2','ss','f','22','d'];
        //定义一个新的数组
        var s = [];
        //遍历数组
        for(var i = 0;i<arr.length;i++){
    if(s.indexOf(arr[i]) == -1){  //判断在s数组中是否存在,不存在则push到s    数组中
        s.push(arr[i]);
    }
    }
        console.log(s);
    

    另外,关于正则,还有一个查找出现最多次的验证匹配,代码如下:

        var str = "aaabdfadlfadlsldflsdf";
            var arr = str.split("");
            var tmp = arr.sort(); // [a,a,a,a,b,b,d,d,f,l,s,s,s];
                str = tmp.join("");// 需写引号,否则会含有","
            var str2 = str.match(/(\w)\1*/g); // 正则匹配,注意贪婪匹配
                str = str2.sort(function(a,b) {
                    return a.length< b.length;
                } )
                console.log(str); // ["aaaaa", "ddddd", "ffff", "llll", "ss", "b"];
                出现最多的数:str[0][0],出现次数:str[0].length
    

    小结:

    正则验证,当我们对字符串做查询验证替换的时候,很有用。
    而关于数组,查询是否重复,或者替换重复项的时候,除了循环,还有内置方法,使用得当能带来意想不到的效果。

    7-11 记录于教室。
    (完)

    相关文章

      网友评论

          本文标题:数组去重、字符串去重、找重复数归纳

          本文链接:https://www.haomeiwen.com/subject/mvzphxtx.html