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 相关文章推荐
IE innerHTML,outerHTML所引起的问题
Jun 04 Javascript
JavaScript 自动完成脚本整理(33个)
Oct 20 Javascript
转换json格式的日期为Javascript对象的函数
Jul 13 Javascript
jquery实现手机发送验证码的倒计时代码
Feb 12 Javascript
100个不能错过的实用JS自定义函数
Mar 05 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
AngularJS基础 ng-click 指令示例代码
Aug 01 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
vue.js声明式渲染和条件与循环基础知识
Jul 31 Javascript
使用vue实现简单键盘的示例(支持移动端和pc端)
Dec 25 Javascript
koa2 从入门到精通(小结)
Jul 23 Javascript
JavaScript使用canvas绘制随机验证码
Feb 17 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
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
javascript的函数
2007/01/31 Javascript
js查找父节点的简单方法
2008/06/28 Javascript
javascript之Partial Application学习
2013/01/10 Javascript
模拟一个类似百度google的模糊搜索下拉列表
2014/04/15 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
在ASP.NET MVC项目中使用RequireJS库的用法示例
2016/02/15 Javascript
JavaScript 判断一个对象{}是否为空对象的简单方法
2016/10/09 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
详谈js遍历集合(Array,Map,Set)
2017/04/06 Javascript
jQuery判断邮箱格式对错实例代码讲解
2017/04/12 jQuery
xmlplus组件设计系列之图标(ICON)(1)
2017/05/05 Javascript
获取url中用&amp;隔开的参数实例(分享)
2017/05/28 Javascript
JS实现评价的星星功能
2017/08/20 Javascript
Angular4.x Event (DOM事件和自定义事件详解)
2018/10/09 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
个人小程序接入支付解决方案
2019/05/23 Javascript
如何解决日期函数new Date()浏览器兼容性问题
2019/09/11 Javascript
layui table 多行删除(id获取)的方法
2019/09/12 Javascript
python 自动提交和抓取网页
2009/07/13 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
python实现126邮箱发送邮件
2020/05/20 Python
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
会计电算化专业毕业生求职信范文
2013/12/10 职场文书
学校综治宣传月活动总结
2014/07/02 职场文书
注册资产评估专业求职信
2014/07/16 职场文书
坎儿井导游词
2015/02/09 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
青年教师听课心得体会
2016/01/15 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
Vue组件化(ref,props, mixin,.插件)详解
2022/05/15 Vue.js