数组去重的几种封装方法

原创 2016年08月31日 16:33:09

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 
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

数组的几种排序方法

js数组去重的几种常用方法总结

1、第一种是比较常规的方法 思路: (1)构建一个新的数组存放结果 (2)for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比 (3)若结果数组中没有该元素,则存到结果数组中A...

数组去重的几种方法-基础篇

date: 2017/5/14 1:47 自己进度慢,写篇博客都是鳖的。就全当是给自己的一个Tip。 除了这个系列。希望下次可以完成一篇几个js小技巧的博客。(总结下自己常用的。) 此篇TODO 1....

JavaScript数组去重的几种方法

这个老问题,网上普遍都有了,为什么要再写一遍呢,主要是为了记个笔记。。。遍历时搜索结果数组思路很明确,如下 新建一个数组存放结果 循环遍历原数组,对于每一个元素,在结果数组中搜索是否存在 若不存在则存...

VB打印的几种方法002--读取二维数组进行顺序打印

一、问题描述:      工作中经常遇到打印的问题,但很多时候复杂的打印需要编程来实现,本文介绍一下将数据库记录读取到数组,再进行打印。 二、程序实现原理:    (1)定义一个数组和编写一个打印函数...

实例分析用指针访问二维数组的几种方法

(2012-02-18 21:48) 分类: Array 之前对数组的概念一直没有理解透彻,只觉得数组名就是个常量指针而已,用法和基本的指针差不多。所以当我尝试用二级指针去访问...

Java中数组复制的几种方法

1.for循环方法:2.System.arraycopy()方法:3.Arrays.copyOf()方法:4.Object.clone()方法: + View code 1 /** ...

数组的几种复制方法

1、copyOf()  用法:Arrays.copOf(dataType[] Arrayname,int length)  其中Arrayname 代表的是要进行复制的数组(源数组),length代...

数组排序的几种方法

1、sort() sort()主要是对数组中的字符串进行排序,通过比较ASCII的大小,对于数字的比较使用格式 数组名.sort(function(num1,num2){ return nu...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)