第一种:也是最笨的吧。

Array.prototype.unique1 = function () {
    var r = new Array();
    label:for(var i = 0, n = this.length; i < n; i++) {
        for(var x = 0, y = r.length; x < y; x++) {
            if(r[x] == this[i]) {
                continue label;
            }
        }
        r[r.length] = this[i];
    }
    return r;
}

第二种:这个正则天书一样。

Array.prototype.unique2 = function () {
    return this.sort().join(",,").replace(/(,|^)([^,]+)(,,\2)+(,|$)/g,"$1$2$4").replace(/,,+/g,",").replace(/,$/,"").split(",");
}

第三种:使用对象的【hasOwnProperty】方法

Array.prototype.unique3 = function() {
    var temp = {}, len = this.length;
    for(var i=0; i < len; i++)  {
        var tmp = this[i];
        if(!temp.hasOwnProperty(tmp)) {
            temp[this[i]] = "my god";
        }
    }
  
    len = 0;
    var tempArr=[];
    for(var i in temp) {
        tempArr[len++] = i;
    }
    return tempArr;
}

第四种:先排序,前项比后项。这个方法挺简单的,但也实用。

Array.prototype.unique4 = function () {
    var temp = new Array();
      this.sort();
      for(i = 0; i < this.length; i++) {
          if( this[i] == this[i+1]) {
            continue;
        }
          temp[temp.length]=this[i];
      }
      return temp;
  
}

下面是以前经常用的,效率也很好。有点想hash表的感觉。

Array.prototype.unique5 = function() {
    var res = [], hash = {};
    for(var i=0, elem; (elem = this[i]) != null; i++)  {
        if (!hash[elem])
        {
            res.push(elem);
            hash[elem] = true;
        }
    }
    return res;
}

使用方法:yourarray=yourarray.unique4();//你的数组名、unique1 2 3 4 5、、

高效率去掉js数组中重复项相关推荐

  1. python去重复排序_Python实现删除排序数组中重复项的两种方法示例

    本文实例讲述了Python实现删除排序数组中重复项的两种方法.分享给大家供大家参考,具体如下: 对于给定的有序数组nums,移除数组中存在的重复数字,确保每个数字只出现一次并返回新数组的长度 注意:不 ...

  2. 快速查找数组中重复项下标

    快速查找数组中重复项下标 var ARR = [1,2,3,4,5,1,2];var rep = [];ARR.forEach((item,index)=>{if(ARR.indexOf(ite ...

  3. C# 移除数组中重复项

    方法一: static void Main(string[] args){//看到数组的第一反应应该是排序int[] array = { 2,4,6,2,8,5,8,10};//去掉数组中重复的项// ...

  4. JS快速查找数组中重复项以及下标

    let arr= [1,2,3,4,5,1,2]; let rep = []; arr.forEach((item,index)=>{if(arr.indexOf(item)!=index){ ...

  5. Js数组中重复元素的去除办法

    一.利用数组内置对象indexOf方法进行去除 1.首先要先通过for循环遍历出旧数组,通过indexOf方法来判断新数组中是否有该元素 2.indexOf方法会对元素在数组中的进行查询,如果元素中有 ...

  6. 算法 --- 删除数组中重复项

    解题思路: 如果输入的数组长度为1,则返回该数组 否则(len>2),使用i记录当前待插入的位置,j记录下一个与nums[i]不相等的位置,leng为待返回数组的长度 当nums[i] !== ...

  7. 从JS数组中删除重复的值[duplicate]

    本文翻译自:Remove duplicate values from JS array [duplicate] This question already has answers here : 这个问 ...

  8. HTML怎么去除数组的重复元素,js去除数组中重复元素并排序

    /p> "http://www.w3.org/TR/html4/strict.dtd"> 003_obj //去掉数组中重复的元素 var arr=[1,2,2,3,3 ...

  9. php 去掉数组相同元素,php怎么去掉数组中重复的元素

    php去掉数组中重复的元素的方法:可以通过内置函数array_unique()来实现.array_unique()函数可以移除数组中重复的值并返回过滤后的数组.如果数组中存在多个相同元素,则只保留第一 ...

最新文章

  1. opencv图像旋转
  2. 深度无盘 连接服务器失败,深度无盘服务器配置
  3. 解析xml数据存入bean映射到数据库的 需求解决过程
  4. 服务器里怎么维修装备,教你在服务器加自己的装备
  5. android apk自动安装包下载,Android实现应用下载并自动安装apk包
  6. 如何与深度学习服务器优雅的交互?(长期更新)
  7. python的应用领域和常用函数模块有哪些_Python模块导入区别与常用函数案例
  8. [翻译]在jQuery 1.5中使用deferred对象
  9. PayPal旗下Venmo:允许信用卡用户将现金返还转换为加密币
  10. Crystal Report動態顯示圖片
  11. [物理学与PDEs]第2章第4节 激波 4.2 熵条件
  12. log4cplus c++开源日志系统
  13. 【ArcGIS|空间分析】地形特征相关计算
  14. java emoji表情 乱码_java 微信昵称带有emoji 表情乱码
  15. 分类计数原理与分步计数原理_分类or分步?计数原理别再傻傻分不清~
  16. App原型图设计工具使用对比
  17. 利用Python you-get 下载网页视频
  18. python抓取图片数字_python 实现识别图片上的数字
  19. 电脑桌面云便签怎么通过便签快捷键设置窗口置顶或置底?
  20. 输油管道问题-分治法求解

热门文章

  1. 英语版计算机教室规章制度,计算机教室规章制度
  2. 华为p20云收藏怎么删除_华为平板怎么记笔记?这款云笔记软件帮你
  3. 线性求逆元模板_算法学习笔记(9):逆元
  4. lsof deleted java,lsof__强大的系统监控、诊断命令
  5. Spring学习之旅(四):面向切面编程(AOP)
  6. Python中缀表达式转后缀表达式并计算
  7. java netty socket_Netty对socket的抽象
  8. 为什么要使用服务器信号切换器,为何要使用KVM切换器,其好处有哪些
  9. php 2010excel,PHPExcel在php5.2.10上的bug
  10. C++ string类的说明