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的图片轮播 tab切换组件
Jul 19 Javascript
jQuery实现仿百度帖吧头部固定导航效果
Aug 07 Javascript
JavaScript实现网站访问次数统计代码
Aug 12 Javascript
js获取及判断键盘按键的方法
Dec 01 Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 Javascript
Cookies 和 Session的详解及区别
Apr 21 Javascript
JavaScript中offsetWidth的bug及解决方法
May 17 Javascript
JavaScript原型对象原理与应用分析
Dec 27 Javascript
深入了解JS之作用域和闭包
Jun 16 Javascript
搭建vscode+vue环境的详细教程
Aug 31 Javascript
javascript实现简易计算器功能
Sep 23 Javascript
用webAPI实现图片放大镜效果
Nov 23 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的博客ping服务代码
2012/02/04 PHP
PHP数组及条件,循环语句学习
2012/11/11 PHP
php实现查看邮件是否已被阅读的方法
2013/12/03 PHP
从PHP的源码中深入了解stdClass类
2014/04/18 PHP
PHP+Javascript实现在线拍照功能实例
2015/07/18 PHP
PHP连续签到功能实现方法详解
2019/12/04 PHP
网站页面自动跳转实现方法PHP、JSP(下)
2010/08/01 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
jquery ajax方式直接提交整个表单核心代码
2013/08/15 Javascript
判断滚动条到底部的JS代码
2013/11/04 Javascript
jQuery常用数据处理方法小结
2015/02/20 Javascript
JavaScript模拟实现继承的方法
2015/03/30 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
javascript每日必学之基础入门
2016/02/16 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
webpack中的模式(mode)使用详解
2020/02/20 Javascript
[02:41]DOTA2英雄基础教程 谜团
2013/12/10 DOTA
将图片文件嵌入到wxpython代码中的实现方法
2014/08/11 Python
Python输出由1,2,3,4组成的互不相同且无重复的三位数
2018/02/01 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python中的协程深入理解
2019/06/10 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
幼儿园招生广告
2014/03/19 职场文书
聘用意向书
2014/07/29 职场文书
夏季药店促销方案
2014/08/22 职场文书
领导干部考核评语
2015/01/04 职场文书
薪资证明范本
2015/06/19 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
如何使用PostgreSQL进行中文全文检索
2021/05/27 PostgreSQL
Python 多线程处理任务实例
2021/11/07 Python