javascript小方法之数组去重、数字转成逗号分隔、html元素去标签

一、数组去重
javascript数组去重,首先介绍一种时间复杂度比较高的方法,先给这个数组排序,之后再遍历数组,当遇到重复的元素时跳过即可。这个方法耗时的地方在对数组排序。
下面介绍一种方法:

function my_unique (txt) {//text是需要去重的数组
    var res = [];//res是去重后的数组
    var json = [];//这是一个局部变量

    for(var i = 0; i < txt.length; i++){
        if(!json[txt[i]]){
            res.push($.trim(txt[i]));
            json[txt[i]] = true;
        }
    }

    return res;
}

为了更容易理解这段代码,假设有这样一个数组:

>>a=[1,3,45,3,5];

我们将数组a中的元素带入my_unique,看下代码是如何执行的
首先,我们处理a[1],json[a[1]]即为json[1],因为json初始化是一个空数组,所以json[1]不存在,所以我们将其push进res中,并且,置json[1]为true,这样,下次我们再遇到a[i]==1时,就不会再将其push进res了,也就达到了去重的目的。
这种方法使用了一个辅助空间,但是用同样的思想,我们还可以它来处理对象的去重。


二、数字转成逗号分隔
在处理数据的时候,可能会遇到这种情况,我们希望将数字转为三个一组,然后用逗号分隔,这个用程序实现的话可能会有两种处理方式,可以不断操作数字,对其取模取余最终将结果串接为字符串,当然,也可以将数字转为字符串处理,三位三位的处理然后串接同样能达到结果。但是在javascript中,我们可以利用正则表达式更高效的实现它。

function formatNumber(strNum){
    if (strNum.length <= 3) {
        return strNum;
    }
    if (!/^(\+|-)?(\d+)(\.\d+)?$/.test(strNum)) {
        return strNum;
    }
    var a = RegExp.$1, b = RegExp.$2, c = RegExp.$3;
    var re = new RegExp();
    re.compile("(\\d)(\\d{3})(,|$)");
    while (re.test(b)) {
        b = b.replace(re, "$1,$2$3");
    }
    return a + "" + b + "" + c;
}

三、html元素去标签

有的时候我们需要将一串html元素去标签,只看到它的内容,可以利用正则表达式实现

formatContent = function (htmlStr) {
    var contentStr = htmlStr.replace(/<[^>]+>/g,"");
    return contentStr;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值