JS中取数组中重复的元素和去除重复的元素

From : http://zhangbq168.blog.163.com/blog/static/23735305200952902915902/

//去重复数据
<script>
Array.prototype.deldistinct=function(){
var a=[],b=[];
for(var prop in this){
var d = this[prop];
if (d===a[prop]) continue; //防止循环到prototype
if (b[d]!=1){
a.push(d);
b[d]=1;
}
}
return a;
}

var x=['a','b','c','d','b','a','e','a','b','c','d','b','a','e'];
document.write('原始数组:'+x);
document.write("<br />");
document.write('去重复后:'+x.deldistinct());
</script>

//取重复数据
<script type="text/javascript">
Array.prototype.getdistinct = function (){
var a = [], b = [], c = [], d = [];
for (var prop in this){
var d = this[prop];
if (d === a[prop]){
continue;
} //防止循环到prototype
if (b[d] != 1){
a.push(d);
b[d] = 1;
}else{
c.push(d);
d[d] = 1;
}
}
//return a;
return c.getdistinct1();
}

Array.prototype.getdistinct1 = function (){
var a = [], b = [];
for (var prop in this){
var d = this[prop];
if (d === a[prop]) continue; //防止循环到prototype
if (b[d] != 1){
a.push(d);
b[d] = 1;
}
}
return a;
}
var x=['a','b','c','d','b','a','e','a','b','c','d','b','a','e','f','f','g'];
document.write('原始数组:'+x);
document.write("<br />");
document.write('去重复后:'+x.getdistinct());
</script>



posted @ 2011-09-30 16:30  Athrun  阅读(687)  评论(0编辑  收藏  举报