前提:數組中的元素類型爲: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()板兒逼能用了。
這是我自己想到的笨方法,當然它的時間複雜度可能滿足不了大家的要求,大家如果有跟好的,請分享一下。