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的一个简单的脚本验证插件
Apr 05 Javascript
php上传图片并给图片打上透明水印的代码
Jun 07 Javascript
JQuery文本框高亮显示插件代码
Apr 02 Javascript
js实现运动logo图片效果及运动元素对象sportBox使用方法
Dec 25 Javascript
javaScript(JS)替换节点实现思路介绍
Apr 17 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
详解ES6中的let命令
Apr 05 Javascript
EasyUI学习之Combobox下拉列表(1)
Dec 29 Javascript
解决Js先触发失去焦点事件再执行点击事件的问题
Aug 30 Javascript
vxe-table vue table 表格组件功能
May 26 Javascript
webpack3.0升级4.0的方法步骤
Apr 02 Javascript
javascript绘制简单钟表效果
Apr 07 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
js实现全屏漂浮广告移入光标停止移动
2013/12/02 Javascript
JS方法调用括号的问题探讨
2014/01/24 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
JavaScript运行过程中的“预编译阶段”和“执行阶段”
2015/12/16 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
jQuery基本过滤选择器用法示例
2016/09/09 Javascript
探讨AngularJs中ui.route的简单应用
2016/11/16 Javascript
php 修改密码实现代码
2017/05/24 Javascript
使用JSON格式提交数据到服务端的实例代码
2018/04/01 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
微信小程序websocket实现聊天功能
2020/03/30 Javascript
微信小程序滑动选择器的实现代码
2018/08/10 Javascript
解决vue select当前value没有更新到vue对象属性的问题
2018/08/30 Javascript
vue-router 起步步骤详解
2019/03/26 Javascript
基于jQuery实现挂号平台首页源码
2020/01/06 jQuery
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
解决基于 keep-alive 的后台多级路由缓存问题
2020/12/23 Javascript
Python迭代器与生成器用法实例分析
2018/07/09 Python
Python3.8中使用f-strings调试
2019/05/22 Python
Django模板语言 Tags使用详解
2019/09/09 Python
Django框架下静态模板的继承操作示例
2019/11/08 Python
Django中如何用xlwt生成表格的方法步骤
2021/01/31 Python
python 如何读、写、解析CSV文件
2021/03/03 Python
css图标制作教程制作云图标
2014/01/19 HTML / CSS
iframe在移动端的缩放的示例代码
2018/10/12 HTML / CSS
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
美国轻奢时尚购物网站:REVOLVE(支持中文)
2020/07/18 全球购物
儿媳婚宴答谢词
2014/01/14 职场文书
个人存款证明书
2014/10/18 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
实现AJAX异步调用和局部刷新的基本步骤
2022/03/17 Javascript
使用Python获取字典键对应值的方法
2022/04/26 Python
Java 写一个简单的图书管理系统
2022/04/26 Java/Android