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 相关文章推荐
在html页面中包含共享页面的方法
Oct 24 Javascript
Mootools 1.2教程 类(一)
Sep 15 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
Jquery实现仿腾讯微博发表广播
Nov 17 Javascript
分享几种比较简单实用的JavaScript tabel切换
Dec 31 Javascript
JSONP跨域请求实例详解
Jul 04 Javascript
详解Vue组件之作用域插槽
Nov 22 Javascript
微信小程序 弹窗输入组件的实现解析
Aug 12 Javascript
webpack + vue 打包生成公共配置文件(域名) 方便动态修改
Aug 29 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
Apr 11 Javascript
javascript实现图片轮换动作方法
Aug 07 Javascript
vue调用本地摄像头实现拍照功能
Aug 14 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
php输出xml必须header的解决方法
2014/10/17 PHP
php mysql PDO 查询操作的实例详解
2017/09/23 PHP
PHP7基于curl实现的上传图片功能
2018/05/11 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
laravel 数据验证规则详解
2019/10/23 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
用js获取电脑信息(是使用与IE浏览器)
2013/01/15 Javascript
解析瀑布流布局:JS+绝对定位的实现
2013/05/08 Javascript
document.getElementById获取控件对象为空的解决方法
2013/11/20 Javascript
浅谈DOCTYPE对$(window).height()取值的影响
2016/07/21 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
微信小程序使用toast消息对话框提示用户忘记输入用户名或密码功能【附源码下载】
2017/12/09 Javascript
Javascript网页抢红包外挂实现分享
2018/01/11 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
python字符串连接方式汇总
2014/08/21 Python
python3.6连接MySQL和表的创建与删除实例代码
2017/12/28 Python
numpy实现合并多维矩阵、list的扩展方法
2018/05/08 Python
Python从数据库读取大量数据批量写入文件的方法
2018/12/10 Python
python实现海螺图片的方法示例
2019/05/12 Python
在python中,使用scatter绘制散点图的实例
2019/07/03 Python
Django REST framework 如何实现内置访问频率控制
2019/07/23 Python
详解Python中正则匹配TAB及空格的小技巧
2019/07/26 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
python绘制BA无标度网络示例代码
2019/11/21 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
Django Form常用功能及代码示例
2020/10/13 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
美国体育用品在线:Modell’s Sporting Goods
2018/06/07 全球购物
盛大笔试题
2016/11/05 面试题
药学专业个人的自我评价
2013/12/31 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书