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 IE 浏览器判定代码
Mar 21 Javascript
动态调用CSS文件的JS代码
Jul 29 Javascript
SwfUpload在IE10上不出现上传按钮的解决方法
Jun 25 Javascript
JS中怎样判断undefined(比较不错的方法)
Mar 27 Javascript
jquery.validate 自定义验证方法及validate相关参数
Jan 18 Javascript
仿百度换肤功能的简单实例代码
Jul 11 Javascript
canvas实现钟表效果
Feb 13 Javascript
在bootstrap中实现轮播图实例代码
Jun 11 Javascript
Node.js中Bootstrap-table的两种分页的实现方法
Sep 18 Javascript
Angular4学习笔记router的简单使用
Mar 30 Javascript
angular 实现的输入框数字千分位及保留几位小数点功能示例
Jun 19 Javascript
浅谈Vue为什么不能检测数组变动
Oct 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面向对象编程快速入门
2006/10/09 PHP
php 数组二分法查找函数代码
2010/02/16 PHP
用PHP来计算某个目录大小的方法
2014/04/01 PHP
PHP解码unicode编码的中文字符代码分享
2014/08/13 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
PHP使用PDO实现mysql防注入功能详解
2019/12/20 PHP
为javascript添加String.Format方法
2020/08/11 Javascript
JQuery的Validation插件中Remote验证的中文问题
2010/07/26 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
2014/06/15 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
Node.js Mongodb 密码特殊字符 @的解决方法
2017/04/11 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
基于Vue实现后台系统权限控制的示例代码
2017/08/29 Javascript
微信小程序radio组件使用详解
2018/01/31 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
2019/11/25 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
原生JS生成指定位数的验证码
2020/10/28 Javascript
Python中的元类编程入门指引
2015/04/15 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
详解详解Python中writelines()方法的使用
2015/05/25 Python
Python2.x与Python3.x的区别
2016/01/14 Python
Python实现的快速排序算法详解
2017/08/01 Python
Django之创建引擎索引报错及解决详解
2019/07/17 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
如何在django中添加日志功能
2020/02/06 Python
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
Sunglasses Shop德国站:欧洲排名第一的太阳镜网站
2017/08/01 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
2014年应届大学生毕业自我鉴定
2014/01/31 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
六五普法先进个人主要事迹材料
2015/11/03 职场文书
PyTorch中permute的使用方法
2022/04/26 Python