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 相关文章推荐
列表内容的选择
Jun 30 Javascript
javascript smipleChart 简单图标类
Jan 12 Javascript
UpdatePanel和Jquery冲突的解决方法
Apr 01 Javascript
jquery简单图片切换显示效果实现方法
Jan 14 Javascript
浅析JS运动
Dec 28 Javascript
javascript基础知识
Jun 07 Javascript
JS获取短信验证码倒计时的实现代码
May 22 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
Aug 24 Javascript
VueRouter导航守卫用法详解
Dec 25 Javascript
JS字符串去除连续或全部重复字符的实例
Mar 08 Javascript
JavaScript学习笔记之DOM操作实例分析
Jan 08 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
Apr 25 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通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
JavaScript读取中文cookie时的乱码问题的解决方法
2009/10/14 Javascript
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
jquery动态添加删除(tr/td)
2015/02/09 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
每天一篇javascript学习小结(String对象)
2015/11/18 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
探讨JavaScript语句的执行过程
2016/01/28 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
详解Javascript函数声明与递归调用
2016/10/22 Javascript
详解webpack+es6+angular1.x项目构建
2017/05/02 Javascript
Vue学习笔记进阶篇之过渡状态详解
2017/07/14 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
vue实现的多页面项目如何优化打包的步骤详解
2020/07/19 Javascript
python3+PyQt5实现自定义分数滑块部件
2018/04/24 Python
Django中使用session保持用户登陆连接的例子
2019/08/06 Python
Python基于Tkinter编写crc校验工具
2020/05/06 Python
Win 10下Anaconda虚拟环境的教程
2020/05/18 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
45个非常奇妙的CSS3 特性应用示例
2012/01/01 HTML / CSS
药学专业大学生自荐信
2013/09/28 职场文书
焊接专业毕业生求职信
2013/10/01 职场文书
写好求职信第一句话的技巧
2013/10/26 职场文书
大学生毕业自我评价范文分享
2013/11/07 职场文书
教师现实表现材料
2014/02/14 职场文书
基层干部2014全国两会学习心得体会
2014/03/10 职场文书
合同协议书格式
2014/04/18 职场文书
2014年防汛工作总结
2014/12/08 职场文书
负责培养人意见
2015/06/05 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Python基础知识之变量的详解
2021/04/14 Python
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
2022/04/30 Vue.js