首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

利用javascript编撰一个去除数组重复项的方法

2012-10-30 
利用javascript编写一个去除数组重复项的方法利用javascript编写一个去除数组重复项的方法,时间复杂度O(n)

利用javascript编写一个去除数组重复项的方法

利用javascript编写一个去除数组重复项的方法,时间复杂度O(n),大家看看有没有什么漏洞或者写出自己更好的方法

<html>
?<head>
??<script type="text/javascript">
???function distinct(arr){
????var rs = new Array();
????for(var i=0;i<arr.length;i++){
?????var s = ","+rs.join(",")+",";
?????if(!s.match(","+arr[i]+",")){
??????rs.push(arr[i]);
?????}?
????}
????return rs;
???}
???var r = new Array(1,2,212,2);
???alert(distinct(r).toString());
??</script>
?</head>
?<body>
?</body>
</html>


结论:
这种写法也能处理除字符串外的其他数据。。
也没有破坏顺序。
但最后一条确实是那样的,会枚举原型链属性,需要使用hasOwnProperty。
var ary = [1,1,1,1,1,1,2,32,,1,1,1,1,1,213,14,3,25,,,,51512,,"fasfasfsa",null,NaN,1,function(){},function(){},function(){},{},{},[],"fasfasfsa"];(function(index) {index = index||0;for(var i=index+1;i<ary.length;i++) {if(ary[i] === ary[index]) {ary = ary.slice(0,i).concat(ary.slice(i--+1));}}if(ary.length-index>1) {arguments.callee(index+1);}})();

热点排行
Bad Request.