前提:数组中的元素类型为: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()板儿逼能用了。
这是我自己想到的笨方法,当然它的时间复杂度可能满足不了大家的要求,勿喷。。