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 相关文章推荐
javascript 表格排序和表头浮动效果(扩展SortTable)
Apr 07 Javascript
JS backgroundImage控制
May 19 Javascript
Javascript延迟执行实现方法(setTimeout)
Dec 30 Javascript
js的for in循环和java里foreach循环的区别分析
Jan 28 Javascript
ECMAScript6函数默认参数
Jun 12 Javascript
angularJS+requireJS实现controller及directive的按需加载示例
Feb 20 Javascript
JavaScript中in和hasOwnProperty区别详解
Aug 04 Javascript
详解vue-cli与webpack结合如何处理静态资源
Sep 19 Javascript
vue中v-for加载本地静态图片方法
Mar 03 Javascript
加快Vue项目的开发速度的方法
Dec 12 Javascript
vue安装遇到的5个报错及解决方法
Jun 12 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
Mar 14 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
php对gzip文件或者字符串解压实例参考
2008/07/25 PHP
php模拟js函数unescape的函数代码
2012/10/20 PHP
php的POSIX 函数以及进程测试的深入分析
2013/06/03 PHP
深入理解:XML与对象的序列化与反序列化
2013/06/08 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
PHP实现邮件群发的源码
2013/06/18 PHP
详解PHP的Laravel框架中Eloquent对象关系映射使用
2016/02/26 PHP
Flexigrid在IE下不显示数据的处理的解决方法
2013/10/24 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
JS判断对象是否存在的10种方法总结
2013/12/23 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
详解JavaScript中Date.UTC()方法的使用
2015/06/12 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
bootstrap警告框使用方法解析
2017/01/13 Javascript
微信小程序中button组件的边框设置的实例详解
2017/09/27 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
浅谈React组件之性能优化
2018/03/02 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
python中的字典详细介绍
2014/09/18 Python
django session完成状态保持的方法
2018/11/27 Python
python爬虫-模拟微博登录功能
2019/09/12 Python
Tensorflow训练模型越来越慢的2种解决方案
2020/02/07 Python
python删除某个目录文件夹的方法
2020/05/26 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
一组SQL面试题
2016/02/15 面试题
杭州联环马网络笔试题面试题
2013/08/04 面试题
商场拾金不昧表扬信
2014/01/13 职场文书
八一建军节感言
2014/02/28 职场文书
三方合作协议书范本
2014/04/18 职场文书
五五普法心得体会
2014/09/04 职场文书
个人四风问题对照检查材料
2014/10/01 职场文书
2014年药剂科工作总结
2014/11/26 职场文书
社区国庆节活动总结
2015/03/23 职场文书
导游词之南京栖霞山
2019/10/18 职场文书
Java获取字符串编码格式实现思路
2022/09/23 Java/Android