标签:重复元素 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