javascript删除数组重复元素的方法汇总


Posted in Javascript onJune 24, 2015

本文实例讲述了javascript删除数组重复元素的方法。分享给大家供大家参考。具体分析如下:

这里分享一个前端面试高频题,主要实现javascript删除数组重复元素。希望对初学者有所帮助

//数组去重的方法
Array.prototype.unique=function(){
  //集中声明变量
  var 
   oldArr=this,
   newArr=[oldArr[0]],
   len=oldArr.length,
   i=1;
  //过滤空数组
  if(!len) return this;
  //过滤重复元素
  for(;i<len;i++){
    newArr.indexOf(oldArr[i])<0 ? newArr.push(_this) : ''; 
  }
  //返回过滤后的数组没有影响原数组
  return newArr;
}
var arr=['a','a','b','a','c','d'];
console.log(arr.unique());
//["a", "b", "c", "d", unique: function]

虽然网上也有很多而且自己写的也不咋地,但是毕竟自己写的逻辑清楚以后还可以顺着逻辑扩展比如扩展到对象元素去重或者是可以同时操作多个数组等等这里再放上别人的写的几个方法可以综合比较下

方法1:

function oSort(arr)
{
  var result ={};
  var newArr=[];
  for(var i=0;i
  {
 if(!result[arr[i]])
 {
   newArr.push(arr[i])
   result[arr[i]]=1
 }
  }
  return newArr
}

方法2:

遍历要删除的数组arr, 把元素分别放入另一个数组tmp中,在判断该元素在arr中不存在才允许放入tmp中
用到两个函数:for ...in 和 indexOf()

var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
 function unique(arr){
   // 遍历arr,把元素分别放入tmp数组(不存在才放)
   var tmp = new Array();
   for(var i in arr){
  //该元素在tmp内部不存在才允许追加
  if(tmp.indexOf(arr[i])==-1){
  }
 }
  return tmp;
}

方法3:

把目标数组arr的元素值和键的位置调换 自动就把重复的元素给删除掉了,调换后的样子:array('qiang'=>1,'ming'=>1,'tao'=>1)

<script type="text/javascript">
  var student = ['qiang','ming','tao','li','liang','you','qiang','tao'];
  function unique(arr){
    var tmp = new Array();
    for(var m in arr){
      tmp[arr[m]]=1;
    }
    //再把键和值的位置再次调换
    var tmparr = new Array();
    for(var n in tmp){
     tmparr.push(n);
    }
   return tmparr;
 }
</script>

方法4

/**
* 去除数组重复元素
*/
function uniqueArray(data){ 
  data = data || []; 
  var a = {}; 
  for (var i=0; i<data.length; i++) { 
    var v = data[i]; 
    if (typeof(a[v]) == 'undefined'){ 
      a[v] = 1; 
    } 
  }; 
  data.length=0; 
  for (var i in a){ 
    data[data.length] = i; 
  } 
  return data; 
}

方法都差不多第三个方法想法还是蛮高明的~

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery 1.0.2
Oct 11 Javascript
Javascript SHA-1:Secure Hash Algorithm
Dec 20 Javascript
textContent在Firefox下与innerText等效的属性
May 12 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
Apr 22 Javascript
JS实现文字向下滚动完整实例
Feb 06 Javascript
javascript常用函数(2)
Nov 05 Javascript
20分钟打造属于你的Bootstrap站点
Jul 27 Javascript
jQuery表单元素选择器代码实例
Feb 06 Javascript
JS库之Three.js 简易入门教程(详解之一)
Sep 13 Javascript
微信小程序ibeacon三点定位详解
Oct 31 Javascript
Jquery滑动门/tab切换实现方法完整示例
Jun 05 jQuery
JavaScript实现前端倒计时效果
Feb 09 Javascript
js实现跨域的方法实例详解
Jun 24 #Javascript
JavaScript中的Promise使用详解
Jun 24 #Javascript
JavaScript面对国际化编程时的一些建议
Jun 24 #Javascript
对JavaScript的全文搜索实现相关度评分的功能的方法
Jun 24 #Javascript
在Mac OS下使用Node.js的简单教程
Jun 24 #Javascript
在Node.js应用中使用Redis的方法简介
Jun 24 #Javascript
浅析Node.js中使用依赖注入的相关问题及解决方法
Jun 24 #Javascript
You might like
在Ajax中使用Flash实现跨域数据读取的实现方法
2010/12/02 Javascript
基于javascript数组实现图片轮播
2016/05/02 Javascript
浅谈JavaScript函数的四种存在形态
2016/06/08 Javascript
简单理解vue中track-by属性
2016/10/26 Javascript
函数四种调用模式以及其中的this指向
2017/01/16 Javascript
js实现页面多个日期时间倒计时效果
2019/06/20 Javascript
layui加载数据显示loading加载完成loading消失的实例代码
2019/09/23 Javascript
Vue 技巧之控制父类的 slot
2020/02/24 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
让IDE识别webpack的别名alias的实现方法
2020/05/06 Javascript
[58:25]VP vs RNG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python编程产生非均匀随机数的几种方法代码分享
2017/12/13 Python
Python函数中不定长参数的写法
2019/02/13 Python
Python时间和字符串转换操作实例分析
2019/03/16 Python
Python Django 简单分页的实现代码解析
2019/08/21 Python
Python浮点数四舍五入问题的分析与解决方法
2019/11/19 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
python爬虫开发之selenium模块详细使用方法与实例全解
2020/03/09 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
thinkphp5 路由分发原理
2021/03/18 PHP
h5调用摄像头的实现方法
2016/06/01 HTML / CSS
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
会计电算一体化个人简历的自我评价
2013/10/15 职场文书
教师专业理论水平的自我评价分享
2013/11/09 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
小区门卫管理制度
2014/01/29 职场文书
班级活动策划书
2014/02/06 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
《雕塑之美》教学反思
2014/04/24 职场文书
党员学习新党章思想汇报
2014/10/25 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
在校生证明
2015/06/17 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书
MySQL面试题讲解之如何设置Hash索引
2021/11/01 MySQL