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;  
    } 




 

 

转载于:https://www.cnblogs.com/liujunchen/p/7718589.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值