js中的数组去重和字符串去重

数组去重

1.遍历数组法

function unique1(array){
var n = [];
//一个新的临时数组
//遍历当前数组
for(var i = 0; i < array.length; i++){
//如果当前数组的第i已经保存进了临时数组,那么跳过,
//否则把当前项push到临时数组里面
if (n.indexOf(array[i]) == -1) n.push(array[i]);
}
return n;
}
 
2.对象值判断
var Array1=['a',1,1,'a','b','b','c',6,5,6];

Array.prototype.unque2=function(){

var arr=[];
var json={};
for(var i=0;i<Array1.length;i++){
if(!json[this[i]]){
arr.push(this[i]);
json[this[i]]=1;
}
}
return arr;
}

3.下标判断

//给传入数组排序,排序后相同值相邻,然后遍历时新数组只加入不与前一值重复的值。
function unique3(array){
var n = [array[0]]; //结果数组
//从第二项开始遍历
for(var i = 1; i < array.length; i++) {
//如果当前数组的第i项在当前数组中第一次出现的位置不是i,
//那么表示第i项是重复的,忽略掉。否则存入结果数组
if (array.indexOf(array[i]) == i) n.push(array[i]);
}
return n;
}
/ 将相同的值相邻,然后遍历去除重复值
function unique4(array){
array.sort();
var re=[array[0]];
for(var i = 1; i < array.length; i++){
if( array[i] !== re[re.length-1]){
  re.push(array[i]);
 }
 }
 return re;
}
 

字符串去重的四种方法

1.for遍历

    function quchong1(str){  
        var newStr="";  
        var flag;  
        for(var i=0;i<str.length;i++){  
            flag=1;  
            for(var j=0;j<newStr.length;j++){  
                if(str[i]==newStr[j]){  
                    flag=0;  
                    break;  
                }  
            }  
            if(flag)  newStr+=str[i];  
        }  
        return newStr;   
    } 

2.indexOf(无兼容问题)

    function quchong2(str){  
        var newStr="";  
        for(var i=0;i<str.length;i++){  
            if(newStr.indexOf(str[i])==-1){  
                newStr+=str[i];  
            }  
        }  
        return newStr;  
    } 

3.search()方法

    function quchong3(str){  
        var newStr="";  
        for(var i=0;i<str.length;i++){  
            if(newStr.search(str[i])==-1)     
            newStr+=str[i];   
              
        }  
        return newStr;  
    } 

4.对象属性

    function quchong4(str){  
        var obj={};  
        var newStr="";  
        for(var i=0;i<str.length;i++){  
            if(!obj[str[i]]){  
                newStr+=str[i];  
                obj[str[i]]=1;  
            }  
        }  
        return newStr;  
    } 




 

 

posted @ 2017-10-23 19:43  夜辰星明  阅读(545)  评论(0编辑  收藏  举报