码迷,mamicode.com
首页 > 编程语言 > 详细

数组去重

时间:2016-12-30 20:45:50      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:重复元素   uniq   新建   个数   style   添加   span   var   对比   

常见三种方法

方法一:1):新建一个空数组

    2):for循环,每个数组与结果数组循环对比,不重复,添加

Array.prototype.unique=function(){
var cons=[this[0]];
for(var i=1;i<this.length;i++){
var repeat=false;
for(var j=0;j<cons.length;j++){
if(this[i]==cons[j]){
repeat=true;
break;
}
}
if(!repeat){
cons.push(this[i]);
}
}
return cons;
}
方法二:1):先将数组排序

    2):检查原数组中的第i个元素 与 结果数组中的最后一个元素是否相同,因为已经排序,所以重复元素会在相邻位置

    3):如果不相同,则将该元素存入结果数组中

Array.prototype.unique=function(){
this.sort();
var cons=[this[0]];
for(var i=1;i<this.length;i++){
if(this[i]!==cons[cons.length-1]){
cons.push(this[i])
}
}
return cons;
}
方法二有局限,如果对数组顺序有要求,则方法二不可行
方法三:1):创造一个新的数组存放结果
    2):创建一个空对象
    3):for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中

Array.prototype.unique=function(){
var cons=[];
var json={};
for(var i=0;i<this.length;i++){
if(!json[this[i]]){
cons.push(this[i]);
json[this[i]]=1;
}
}
return cons;
}
 

 

数组去重

标签:重复元素   uniq   新建   个数   style   添加   span   var   对比   

原文地址:http://www.cnblogs.com/dyCode/p/6237896.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!