关闭

数组去重的几种封装方法

75人阅读 评论(0) 收藏 举报
分类:

1、遍历数组法:

此方法缺点: IE8以下不支持 indexOF
function unique(array){
    var  n = [];
    for(var i =0; i<array.length; i++){
        if(n.indexOf(array[i])==-1){
            n.push(array[i]); 
        } 
    }
    return ;
}

2、对象键值对法;

此方法优点:速度最快, 缺点:占空间最多
function unique(array){
    var n = {};
    var r = [];
    var len = array.length;
    var val;
    var type;
    for(var i=0; i<array.length; i++){
        val = array[i];
        type = typeof val ;
        if(!n[val]){
            n[val] = [type];
            r.push(val);
        } else if(n[val].indexOf(type)<0){
            n[val].push(type);
            r.push(val);
        }
    }
    return r;
}                   

3、数组下标法:

function unique(array){
    var n = [array[0]];
    for(var i=1; i<array.length; i++){
        if(array.indexOf(array[i])==i){
            n.push(array[i]);
        } 
    }
    return n;
}

4、优化遍历数组法

function unique(array){
    var  r = [];
    for(var i=0; i<array.length; i++){
        for(var j=i+1; j<array.length; j++){
            if(array[i]===array[j]){
                j=++i;
            } 
        } 
        r.push(array[i])
    }  
    return r;
}   

5、

function unique(array){
    var arr = [];
    var obj = {};
    for(var i=0; i<arary.length; i++){
        if(!obj[array[i]]){
            obj[array[i]] = array[i];
            arr.push(array[i])
        }
    }
    return arr 
}
1
0
猜你在找
【直播】机器学习&数据挖掘7周实训--韦玮
【套餐】系统集成项目管理工程师顺利通关--徐朋
【直播】3小时掌握Docker最佳实战-徐西宁
【套餐】机器学习系列套餐(算法+实战)--唐宇迪
【直播】计算机视觉原理及实战--屈教授
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之矩阵--黄博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
【直播】机器学习之凸优化--马博士
【套餐】Javascript 设计模式实战--曾亮
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3395次
    • 积分:247
    • 等级:
    • 排名:千里之外
    • 原创:21篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类