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匿名函数
Nov 25 Javascript
点击弹出层外区域关闭弹出层jquery特效示例
Aug 25 Javascript
JavaScript中switch判断容易犯错的一个细节
Aug 27 Javascript
js光标定位文本框回车表单提交问题的解决方法
May 11 Javascript
JavaScript实现的浮动层框架用法实例分析
Oct 10 Javascript
基于jQuery实现网页打印功能
Dec 01 Javascript
js判断复选框是否选中及选中个数的实现代码
May 30 Javascript
js判断输入字符串是否为空、空格、null的方法总结
Jun 14 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
Jun 28 Javascript
详解XMLHttpRequest(一)同步请求和异步请求
Sep 14 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
Jan 26 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
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
QueryPath PHP 中的jQuery
2010/04/11 PHP
php中var_export与var_dump的区别分析
2010/08/21 PHP
php新建文件自动编号的思路与实现
2011/06/27 PHP
ThinkPHP缓存方法S()概述
2014/06/13 PHP
php+ajax实现图片文件上传功能实例
2014/06/17 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
js中if语句的几种优化代码写法
2011/03/12 Javascript
基于jquery的防止大图片撑破页面的实现代码(立即缩放)
2011/10/24 Javascript
Jquery 点击按钮自动高亮实现原理及代码
2014/04/25 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
基于jQuery实现的双11天猫拆红包抽奖效果
2015/12/01 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
jQuery中deferred对象使用方法详解
2016/07/14 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
详解JS数组Reduce()方法详解及高级技巧
2017/08/18 Javascript
JavaScript中常用的简洁高级技巧总结
2019/03/10 Javascript
vue引用外部JS的两种种方法
2020/01/28 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
Python 爬虫模拟登陆知乎
2016/09/23 Python
Python3实现抓取javascript动态生成的html网页功能示例
2017/08/22 Python
Python基于socket模块实现UDP通信功能示例
2018/04/10 Python
pandas值替换方法
2018/07/10 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
Scrapy框架爬取Boss直聘网Python职位信息的源码
2019/02/22 Python
python频繁写入文件时提速的方法
2019/06/26 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
Opencv+Python识别PCB板图片的步骤
2021/01/07 Python
pandas map(),apply(),applymap()区别解析
2021/02/24 Python
园长自我鉴定
2013/10/06 职场文书
经典英文广告词
2014/03/18 职场文书
党的群众路线教育实践方案
2014/05/11 职场文书
保安2014年终工作总结
2014/12/06 职场文书
vue Element-ui表格实现树形结构表格
2021/06/07 Vue.js
linux目录管理方法介绍
2022/06/01 Servers