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实现table单双行不同显示并能单行选中
Jul 25 Javascript
javascript实现时间格式输出FormatDate函数
Jan 13 Javascript
jfinal与bootstrap的登录跳转实战演习
Sep 22 Javascript
使用jQuery监听DOM元素大小变化
Feb 24 Javascript
JavaScript中的Array 对象(数组对象)
Jun 02 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
Jun 07 Javascript
Bootstrap中表单控件状态(验证状态)
Aug 04 Javascript
vue2.0项目中使用Ueditor富文本编辑器示例代码
Aug 14 Javascript
Vue全家桶实践项目总结(推荐)
Nov 04 Javascript
Angular2 父子组件通信方式的示例
Jan 29 Javascript
vuex实现登录状态的存储,未登录状态不允许浏览的方法
Mar 09 Javascript
JS滚轮控制图片缩放大小和拖动的实例代码
Nov 20 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编程效率 引入缓存机制提升性能
2010/02/15 PHP
关于UEditor编辑器远程图片上传失败的解决办法
2012/08/31 PHP
php网页病毒清除类
2014/12/08 PHP
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
javascript+HTML5的canvas实现七夕情人节3D玫瑰花效果代码
2015/08/04 Javascript
Spring mvc 接收json对象
2015/12/10 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
bootstrap轮播模板使用方法详解
2017/11/17 Javascript
vue cli升级webapck4总结
2018/04/04 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
vue.js 实现评价五角星组件的实例代码
2018/08/13 Javascript
es6中比较有用的7个技巧小结
2019/07/12 Javascript
微信小程序wxml列表渲染原理解析
2019/11/27 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
2020/07/11 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
[01:48]2018DOTA2亚洲邀请赛主赛事第二日五佳镜头 VG完美团战逆转TNC
2018/04/05 DOTA
python发送邮件功能实现代码
2016/07/15 Python
浅谈python中copy和deepcopy中的区别
2017/10/23 Python
Python使用matplotlib的pie函数绘制饼状图功能示例
2018/01/08 Python
python3.6+selenium实现操作Frame中的页面元素
2019/07/16 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
关于python导入模块import与常见的模块详解
2019/08/28 Python
python安装scipy的步骤解析
2019/09/28 Python
python将unicode和str互相转化的实现
2020/05/11 Python
HTML5离线应用与客户端存储的实现
2018/05/03 HTML / CSS
HTML5声音录制/播放功能的实现代码
2018/05/03 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
信息技术课后反思
2014/04/27 职场文书
公司老总年会致辞
2015/07/30 职场文书
教师读书活动心得体会
2016/01/14 职场文书