JavaScript数组去重的两种方法推荐


Posted in Javascript onApril 05, 2016

1、数组去重;

Array类型并没有提供去重复的方法,如果要把数组的重复元素干掉,那得自己想办法:

方法一:利用indexOf方法;

var aa=[1,3,5,4,3,3,1,4]
function arr(arr) {
  var result=[]
  for(var i=0; i<arr.length; i++){
    if(result.indexOf(arr[i])==-1){
      result.push(arr[i])
    }
  }
  console.log(result)
}      
arr(aa)

方法二:

function unique(arr) {
  var result = [], isRepeated;
  for (var i = 0, len = arr.length; i < len; i++) {
    isRepeated = false;
    for (var j = 0, len = result.length; j < len; j++) {
      if (arr[i] == result[j]) {  
        isRepeated = true;
        break;
      }
    }
    if (!isRepeated) {
      result.push(arr[i]);
    }
  }
  return result;
}

方法二,总体思路是把数组元素逐个搬运到另一个数组,搬运的过程中检查这个元素是否有重复,如果有就直接丢掉。从嵌套循环就可以看出,这种方法效率极低。我们可以用一个hashtable的结构记录已有的元素,这样就可以避免内层循环。恰好,在Javascript中实现hashtable是极为简单的,改进如下:

function unique(arr) {
  var result = [], hash = {};
  for (var i = 0, elem; (elem = arr[i]) != null; i++) {
    if (!hash[elem]) {
      result.push(elem);
      hash[elem] = true;
    }
  }
  return result;
}

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

Javascript 相关文章推荐
网页的标准,IMG不支持onload标签怎么办
Jun 29 Javascript
Extjs4中tree的拖拽功能(可以两棵树之间拖拽) 简单实例
Dec 08 Javascript
javaScript 计算两个日期的天数相差(示例代码)
Dec 27 Javascript
jQuery实现Email邮箱地址自动补全功能代码
Nov 03 Javascript
jQuery+css实现的换页标签栏效果
Jan 27 Javascript
jQuery实现区域打印功能代码详解
Jun 17 Javascript
JavaScript实现同一个页面打开多张图片
Dec 29 Javascript
详解刷新页面vuex数据不消失和不跳转页面的解决
Jan 30 Javascript
使用微信小程序开发弹出框应用实例详解
Oct 18 Javascript
JavaScript 判断iPhone X Series机型的方法
Jan 28 Javascript
vue+elementUI实现简单日历功能
Sep 24 Javascript
夯基础之手撕javascript继承详解
Nov 09 Javascript
jquery Deferred 快速解决异步回调的问题
Apr 05 #Javascript
JS模拟简易滚动条效果代码(附demo源码)
Apr 05 #Javascript
JS中的forEach、$.each、map方法推荐
Apr 05 #Javascript
javascript HTML5 canvas实现打砖块游戏
Jun 18 #Javascript
jQuery EasyUI中DataGird动态生成列的方法
Apr 05 #Javascript
基于jquery fly插件实现加入购物车抛物线动画效果
Apr 05 #Javascript
JS简单编号生成器实现方法(附demo源码下载)
Apr 05 #Javascript
You might like
解决php的“It is not safe to rely on the system’s timezone settings”问题
2015/10/08 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题分析
2007/08/12 Javascript
JQuery 解析多维的Json数据格式
2009/11/02 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
使用jquery获取url及url参数的简单实例
2016/06/14 Javascript
JavaScript实现简单的拖动效果
2016/07/02 Javascript
js实现楼层效果的简单实例
2016/07/15 Javascript
jQuery包裹节点用法完整示例
2016/09/13 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
利用vue实现模态框组件
2016/12/19 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
vue-cli 项目打包完成后运行文件路径报错问题
2019/07/19 Javascript
JS/CSS实现字符串单词首字母大写功能
2019/09/03 Javascript
在NodeJs中使用node-schedule增加定时器任务的方法
2020/06/08 NodeJs
Python运算符重载详解及实例代码
2017/03/07 Python
python搭建服务器实现两个Android客户端间收发消息
2018/04/12 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
python base64库给用户名或密码加密的流程
2020/01/02 Python
Python try except异常捕获机制原理解析
2020/04/18 Python
解决python3.x安装numpy成功但import出错的问题
2020/11/17 Python
Tretorn美国官网:瑞典外套和鞋类品牌,抵御风雨
2018/07/19 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
用缩写的指针比较"if(p)" 检查空指针是否可靠?如果空指针的内部表达不是0会怎么样?
2014/01/05 面试题
自主招生教师推荐信
2014/05/10 职场文书
汉语言文学专业求职信
2014/06/19 职场文书
实习介绍信模板
2015/01/30 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
vue3使用vuedraggable实现拖拽功能
2022/04/06 Vue.js