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插件开发基础简单介绍
Jan 07 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
Apr 23 Javascript
Jquery中Event对象属性小结
Feb 27 Javascript
JS IOS/iPhone的Safari浏览器不兼容Javascript中的Date()问题如何解决
Nov 11 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
jQuery插件之validation插件
Mar 29 jQuery
Vue中使用vux配置代码详解
Sep 16 Javascript
如何去除富文本中的html标签及vue、react、微信小程序中的过滤器
Nov 21 Javascript
微信小程序新手教程之启动页的重要性
Mar 03 Javascript
使用vue实现HTML页面生成图片的方法
Mar 12 Javascript
nuxt+axios实现打包后动态修改请求地址的方法
Apr 22 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
Nov 10 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获取远程文件的内容和大小
2015/11/03 PHP
php+html5实现无刷新图片上传教程
2016/01/22 PHP
thinkphp3.x中变量的获取和过滤方法详解
2016/05/20 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
ThinkPHP5实现作业管理系统中处理学生未交作业与已交作业信息的方法
2016/11/12 PHP
js+canvas绘制五角星的方法
2016/01/28 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
微信小程序 scroll-view组件实现列表页实例代码
2016/12/14 Javascript
nodejs中art-template模板语法的引入及冲突解决方案
2017/11/07 NodeJs
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
JS实现二维数组元素的排列组合运算简单示例
2019/01/28 Javascript
vue + any-touch实现一个iscroll 实现拖拽和滑动动画效果
2019/04/08 Javascript
vue 项目 iOS WKWebView 加载
2019/04/17 Javascript
vue 移动端注入骨架屏的配置方法
2019/06/25 Javascript
Vue混入mixins滚动触底的方法
2019/11/22 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
[00:43]FTP典藏礼包 DOTA2三大英雄霸气新套装
2014/03/21 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python XML RPC服务器端和客户端实例
2014/11/22 Python
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
使用Python中的线程进行网络编程的入门教程
2015/04/15 Python
python中enumerate函数用法实例分析
2015/05/20 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python按行读取文件的简单实现方法
2016/06/22 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
python+opencv边缘提取与各函数参数解析
2020/03/09 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
如何教少儿学习Python编程
2020/07/10 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
机电一体化专业推荐信
2013/12/03 职场文书
岗位职责风险点
2014/03/12 职场文书
建国大业观后感800字
2015/06/01 职场文书
Python连续赋值需要注意的一些问题
2021/06/03 Python
SQL语句多表联合查询的方法示例
2022/04/18 MySQL