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 事件对象的实现
Jul 13 Javascript
基于jquery的图片轮播 tab切换组件
Jul 19 Javascript
javascript使用数组的push方法完成快速排序
Sep 15 Javascript
js实现鼠标滑过文字链接色彩变化的效果
May 06 Javascript
jquery.mousewheel实现整屏翻屏效果
Aug 30 Javascript
JavaScript提升性能的常用技巧总结【经典】
Jun 20 Javascript
Vue.js鼠标悬浮更换图片功能
May 17 Javascript
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
详解express + mock让前后台并行开发
Jun 06 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
vue router-link 默认a标签去除下划线的实现
Nov 06 Javascript
详解uniapp的全局变量实现方式
Jan 11 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
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
PHP 编程安全性小结
2010/01/08 PHP
PHP页面中文乱码分析
2013/10/29 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
PHP单例模式与工厂模式详解
2017/08/29 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
零基础php编程好学吗
2019/10/11 PHP
(function(){})()的用法与优点
2007/03/11 Javascript
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
js重写alert控件(适合学习js的新手朋友)
2014/08/24 Javascript
jQuery调取jSon数据并展示的方法
2015/01/29 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
在Python的Django框架中编写编译函数
2015/07/20 Python
python 迭代器和iter()函数详解及实例
2017/03/21 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
python 计算一个字符串中所有数字的和实例
2019/06/11 Python
python实现最短路径的实例方法
2020/07/19 Python
HTML5+CSS3网页加载进度条的实现,下载进度条的代码实例
2016/12/30 HTML / CSS
Html5剪切板功能的实现代码
2018/06/29 HTML / CSS
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
Nike西班牙官方网站:Nike.com (ES)
2017/10/30 全球购物
全球最大运动品牌的男装、女装和童装官方库存商:A&A Sports
2021/01/17 全球购物
高中自我鉴定范文
2013/11/03 职场文书
广告创意求职信
2014/03/17 职场文书
教师节活动主持词
2014/04/02 职场文书
学校与家长安全责任书
2014/07/23 职场文书
白酒代理协议书范本
2014/10/26 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
MongoDB支持的索引类型
2022/04/11 MongoDB