JS实现的合并多个数组去重算法示例


Posted in Javascript onApril 11, 2018

本文实例讲述了JS实现的合并多个数组去重算法。分享给大家供大家参考,具体如下:

var arr1 = ['a','b'];
var arr2 = ['a','c','d'];
var arr3 = [1,'d',undefined,true,null];
//合并两个数组,去重
var concat_ = function(arr1,arr2){
  //不要直接使用var arr = arr1,这样arr只是arr1的一个引用,两者的修改会互相影响
  var arr = arr1.concat();
  //或者使用slice()复制,var arr = arr1.slice(0)
  for(var i=0;i<arr2.length;i++){
    arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
  }
  return arr;
}
console.log(concat_(arr1,arr2));

运行结果:

JS实现的合并多个数组去重算法示例

var arr1 = ['a','b'];
var arr2 = ['a','c','d'];
var arr3 = [1,'d',undefined,true,null];
//合并多个数组,去重
var concat = function(arr1,arr2,arr3){
  if(arguments.length <= 1){
    return false;
  }
  var concat_ = function(arr1,arr2){
    var arr = arr1.concat();
    for(var i=0;i<arr2.length;i++){
      arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
    }
    return arr;
  }
  var result = concat_(arr1,arr2);
  for(var i=2;i<arguments.length;i++){
    result = concat_(result,arguments[i]);
  }
  return result;
}
console.log(concat(arr1,arr2,arr3));

运行结果:

JS实现的合并多个数组去重算法示例

//合并多个数组,去重,排序
var arr1 = [1,6,4,0];
var arr2 = [8,20,7,4.5];
var arr3 = [6,0,7,90,2];
var concat = function(arr1,arr2,arr3){
  if(arguments.length <= 1){
    return false;
  }
  var concat_ = function(arr1,arr2){
    var arr = arr1.concat();
    for(var i=0;i<arr2.length;i++){
      arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;
    }
    return arr;
  }
  var result = concat_(arr1,arr2);
  for(var i=2;i<arguments.length;i++){
    result = concat_(result,arguments[i]);
  }
  //排序
  function sortNumber(a,b){
    return a - b;
  }
  return result.sort(sortNumber);
}
console.log(concat(arr1,arr2,arr3));

运行结果:

JS实现的合并多个数组去重算法示例

Javascript 相关文章推荐
jQuery 1.8 Release版本发布了
Aug 14 Javascript
js或者jquery判断图片是否加载完成实现代码
Mar 20 Javascript
浅析js中的浮点型运算问题
Jan 06 Javascript
JavaScript中length属性的使用方法
Jun 05 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
May 28 Javascript
Bootstrap 附加导航(Affix)插件实例详解
Jun 01 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
Nov 20 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
js实现自定义进度条效果
Mar 15 Javascript
深入理解JS的事件绑定、事件流模型
May 13 Javascript
详解Vue源码学习之callHook钩子函数
Jul 25 Javascript
在Express中提供静态文件的实现方法
Oct 17 Javascript
JS实现的JSON数组去重算法示例
Apr 11 #Javascript
[原创]jQuery实现合并/追加数组并去除重复项的方法
Apr 11 #jQuery
JS常用的几种数组遍历方式以及性能分析对比实例详解
Apr 11 #Javascript
node结合swig渲染摸板的方法
Apr 11 #Javascript
详解react、redux、react-redux之间的关系
Apr 11 #Javascript
Mac下安装vue
Apr 11 #Javascript
vue-cli 组件的导入与使用教程详解
Apr 11 #Javascript
You might like
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
通过具体程序来理解PHP里面的抽象类
2010/01/28 PHP
php向js函数传参的几种方法
2014/08/10 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
浅谈关于PHP解决图片无损压缩的问题
2017/09/01 PHP
CI框架网页缓存简单用法分析
2018/12/26 PHP
JavaScript高级程序设计 阅读笔记(十三) js定义类或对象
2012/08/14 Javascript
JavaScript等比例缩放图片控制超出范围的图片
2013/08/06 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
JS生成不重复随机数组的函数代码
2014/06/10 Javascript
js实现当复选框选择匿名登录时隐藏登录框效果
2015/08/14 Javascript
js实现常用排序算法
2016/08/09 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
微信小程序中的swiper组件详解
2017/04/14 Javascript
详解vue渲染从后台获取的json数据
2017/07/06 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
微信小程序引入Vant组件库过程解析
2019/08/06 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
python中kmeans聚类实现代码
2018/02/23 Python
python实现点对点聊天程序
2018/07/28 Python
Python爬虫将爬取的图片写入world文档的方法
2018/11/07 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
浅谈Pycharm调用同级目录下的py脚本bug
2018/12/03 Python
keras 模型参数,模型保存,中间结果输出操作
2020/07/06 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
全球采购的街头服饰和帽子:Urban Excess
2020/10/28 全球购物
副总经理工作职责
2013/11/28 职场文书
婚礼证婚人证婚词
2014/01/13 职场文书
军训自我鉴定200字
2014/02/13 职场文书
四风查摆剖析材料
2014/10/10 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL