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 相关文章推荐
JavaScript 解析Json字符串的性能比较分析代码
Dec 16 Javascript
Js,alert出现乱码问题的解决方法
Jun 19 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
Sep 26 Javascript
js的匿名函数使用介绍
Dec 11 Javascript
jQuery 获取屏幕高度、宽度的简单实现案例
May 17 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
Vue.js实战之利用vue-router实现跳转页面
Apr 01 Javascript
jQuery+Ajax请求本地数据加载商品列表页并跳转详情页的实现方法
Jul 12 jQuery
深入理解 Koa 框架中间件原理
Oct 18 Javascript
vue解决使用$http获取数据时报错的问题
Oct 30 Javascript
js实现文字头像的生成代码
Mar 07 Javascript
原生js实现九宫格拖拽换位
Jan 26 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
ECMall支持SSL连接邮件服务器的配置方法详解
2014/05/19 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
jquery中动态效果小结
2010/12/16 Javascript
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
简单漂亮的js弹窗可自由拖拽且兼容大部分浏览器
2013/10/22 Javascript
JavaScript获取当前网页最后修改时间的方法
2015/04/03 Javascript
javasript实现密码的隐藏与显示
2015/05/08 Javascript
即将发布的jQuery 3 有哪些新特性
2016/04/14 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
HTML中setCapture、releaseCapture 使用方法浅析
2016/09/25 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
分析JavaScript数组操作难点
2017/12/18 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
OpenCV 轮廓检测的实现方法
2019/07/03 Python
python selenium 查找隐藏元素 自动播放视频功能
2019/07/24 Python
python函数中将变量名转换成字符串实例
2020/05/11 Python
Python函数参数定义及传递方式解析
2020/06/10 Python
python中requests模拟登录的三种方式(携带cookie/session进行请求网站)
2020/11/17 Python
汽车销售求职自荐信
2013/10/01 职场文书
汽车专业毕业生自荐信
2013/11/03 职场文书
仓管员岗位职责范文
2013/11/08 职场文书
怎么写有吸引力的自荐信
2013/11/17 职场文书
行政总经理岗位职责
2013/12/05 职场文书
社区十八大感言
2014/01/19 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
推荐信格式范文
2014/05/09 职场文书
运动员获奖感言
2014/08/15 职场文书
十佳家长事迹材料
2014/08/26 职场文书
横店影视城导游词
2015/02/06 职场文书
装饰施工员岗位职责
2015/04/11 职场文书
党员转正意见怎么写
2015/06/03 职场文书
获奖感言一句话
2015/07/31 职场文书
预备党员入党感想
2015/08/10 职场文书
创业计划书之便利店
2019/09/05 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python