js 数组排除重复值(string)

前提:数组中的元素类型为:string

在网上看了许多高大尚的文章,还是解决不了我的string arry 的问题,只能怪自己脑残了,上代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>jQ数组string去重</title>
    <script src="jquery-1.7.2.min.js"></script>
    <script type="text/javascript">
        $(function () {
            var sbArray = new Array(["北京"], ["石家庄"], ["天津"], ["北京"], ["石家庄"], ["天津"], ["保定"], ["北京"], ["邯郸"], ["保定"], ["廊坊"], ["保定"]);
            var sb = new Array();
            alert(sbArray.length);
            alert(sbArray.indexOf("北京"));
            //遍历数组
            $(input).click(function () {
                if (sbArray.length > 0) {
                    for (var i = 0; i < sbArray.length; i++) {
                        if (sb.toString().indexOf(sbArray[i]) < 0) {
                            sb.push(sbArray[i]);
                        }
                    }//end for
                    $("#p2").text(sb.toString());
                }//end if
            });
        });
    </script>
</head>
<body>
    <input type="button" value="排重" />
    <p id="p2"></p>
</body>
</html>

注意:在sbArray数组中,sbArray.indexOf("北京") 的返回值为 -1 ,也就是没有包含,看来不能直接通过indexOf()判断了。

为了达到效果,添加了一个toString() 方法,这样转换为string后indexOf()板儿逼能用了。

这是我自己想到的笨方法,当然它的时间复杂度可能满足不了大家的要求,勿喷。。

js 数组排除重复值(string),古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。