JavaScript几种数组去掉重复值的方法推荐


Posted in Javascript onApril 12, 2016

数组去重复是一个常见的需求,我们暂时考虑同类型的数组去重复。主要是理清思路和考虑下性能。以下方法,网上基本都有,这里只是简单地总结一下。

思路:

1.遍历数组,一一比较,比较到相同的就删除后面的
2.遍历数组,一一比较,比较到相同的,跳过前面重复的,不相同的放入新数组
3.任取一个数组元素放入新数组,遍历剩下的数组元素任取一个,与新数组的元素一一比较,如果有不同的,放入新数组。
4.遍历数组,取一个元素,作为对象的属性,判断属性是否存在

1. 删除后面重复的:

function ov1(arr){
  //var a1=((new Date).getTime())
  for(var i=0;i<arr.length;i++)
    for(var j=i+1;j<arr.length;j++)
      if(arr[i]===arr[j]){arr.splice(j,1);j--;}      
  //console.info((new Date).getTime()-a1)        
  return arr.sort(function(a,b){return a-b});
}

2. 这个是常规的方法,比较好理解,如果相同则跳出循环

function ov2(a) {
  //var a1=((new Date).getTime())
  var b = [], n = a.length, i, j;
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++)
      if (a[i] === a[j]){j=false;break;}
    if(j)b.push(a[i]);
    }
  //console.info((new Date).getTime()-a1)  
  return b.sort(function(a,b){return a-b});
}

3. 这个我花了好长时间明白的,这里j循环虽然继续了,但是i值已经改变了。就等于是一个新的i循环:

function ov3(a) {
  //var a1=((new Date).getTime())
  var b = [], n = a.length, i, j;
  for (i = 0; i < n; i++) {
    for (j = i + 1; j < n; j++)
    if (a[i] === a[j])j=++i
  b.push(a[i]);}
  //console.info((new Date).getTime()-a1)  
  return b.sort(function(a,b){return a-b});
}

4. 保证新数组中的都是唯一的

function ov4(ar){
//var a1=((new Date).getTime())
  var m=[],f;
  for(var i=0;i<ar.length;i++){
  f=true; 
  for(var j=0;j<m.length;j++)
  if(ar[i]===m[j]){f=false;break;};
  if(f)m.push(ar[i])}
//console.info((new Date).getTime()-a1)  
  return m.sort(function(a,b){return a-b});
}

5. 用对象属性

function ov5(ar){
	//  var a1=(new Date).getTime()
			var m,n=[],o= {};
			for (var i=0;(m= ar[i])!==undefined;i++)
			if (!o[m]){n.push(m);o[m]=true;}
	//  console.info((new Date).getTime()-a1)  
		return n.sort(function(a,b){return a-b});;
		}

以上这篇JavaScript几种数组去掉重复值的方法推荐就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery关于页面焦点的定位(文本框获取焦点时改变样式 )
Sep 10 Javascript
JavaScript中两个感叹号的作用说明
Dec 28 Javascript
基于jquery中children()与find()的区别介绍
Apr 26 Javascript
javascript获取隐藏元素(display:none)的高度和宽度的方法
Jun 06 Javascript
jQuery中not()方法用法实例
Jan 06 Javascript
vue2.X组件学习心得(新手必看篇)
Jul 05 Javascript
微信小程序实现下载进度条的方法
Dec 08 Javascript
js推箱子小游戏步骤代码解析
Jan 10 Javascript
Vuex提升学习篇
Jan 11 Javascript
使用next.js开发网址缩短服务的方法
Jun 17 Javascript
在Echarts图中给坐标轴加一个标识线markLine
Jul 20 Javascript
记一次vue跨域的解决
Oct 21 Javascript
学习使用bootstrap基本控件(table、form、button)
Apr 12 #Javascript
如何高效率去掉js数组中的重复项
Apr 12 #Javascript
学习使用bootstrap3栅格系统
Apr 12 #Javascript
分享两段简单的JS代码防止SQL注入
Apr 12 #Javascript
DIV随滚动条滚动而滚动的实现代码【推荐】
Apr 12 #Javascript
原生js实现百叶窗效果及原理介绍
Apr 12 #Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
Apr 12 #Javascript
You might like
非常好用的Zend Framework分页类
2014/06/25 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
2014/07/25 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
2016/08/23 PHP
Mootools 1.2教程 Fx.Morph、Fx选项和Fx事件
2009/09/15 Javascript
引入autocomplete组件时JS报未结束字符串常量错误
2014/03/19 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
微信小程序 获取相册照片实例详解
2016/11/16 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
js鼠标移动时禁止选中文字
2017/02/19 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
《javascript少儿编程》location术语总结
2018/05/27 Javascript
用jQuery将JavaScript对象转换为querystring查询字符串的方法
2018/11/12 jQuery
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据操作
2020/07/31 Javascript
在vue中配置不同的代理同时访问不同的后台操作
2020/09/11 Javascript
[44:30]完美世界DOTA2联赛PWL S2 GXR vs Magma 第一场 11.25
2020/11/26 DOTA
python实现微信接口(itchat)详细介绍
2017/10/23 Python
django 自定义过滤器的实现
2019/02/26 Python
Python监控服务器实用工具psutil使用解析
2019/12/19 Python
Pytorch中.new()的作用详解
2020/02/18 Python
Python生成并下载文件后端代码实例
2020/08/31 Python
css3实现input输入框颜色渐变发光效果代码
2014/04/02 HTML / CSS
Gap加拿大官网:Gap Canada
2017/08/24 全球购物
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
Kangol帽子官网:坎戈尔袋鼠
2018/09/26 全球购物
架构师岗位职责
2013/11/18 职场文书
食堂个人先进事迹
2014/01/22 职场文书
两只小狮子教学反思
2014/02/05 职场文书
保险公司晨会主持词
2014/03/22 职场文书
家长学校培训材料
2014/08/20 职场文书
思想道德自我评价2015
2015/03/09 职场文书
小学作文指导之如何写人?
2019/07/08 职场文书
CSS3 Tab动画实例之背景切换动态效果
2021/08/23 HTML / CSS