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 相关文章推荐
Mootools 1.2教程 Fx.Tween的使用
Sep 15 Javascript
javascript移动设备Web开发中对touch事件的封装实例
Jun 05 Javascript
javascript实现当前页导航激活的方法
Feb 27 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
Jan 18 Javascript
javascript每日必学之封装
Feb 23 Javascript
JS基于面向对象实现的多个倒计时器功能示例
Feb 28 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
Dec 21 Javascript
解决angularjs中同步执行http请求的方法
Aug 13 Javascript
详解vantUI框架在vue项目中的应用踩坑
Dec 06 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
Mar 07 Javascript
微信小程序 flexbox layout快速实现基本布局的解决方案
Mar 24 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
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
Destoon实现多表查询示例
2014/08/21 PHP
php制作文本式留言板
2015/03/18 PHP
jQuery 表格插件整理
2010/04/27 Javascript
在JavaScript中获取请求的URL参数
2010/12/22 Javascript
网页中返回顶部代码(多种方法)另附注释说明
2013/04/24 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
基于Arcgis for javascript实现百度地图ABCD marker的效果
2015/09/12 Javascript
全面解析Node.js 8 重要功能和修复
2017/06/02 Javascript
微信小程序项目总结之点赞 删除列表 分享功能
2018/06/25 Javascript
jQuery实现动态向上滚动
2020/12/21 jQuery
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
Python中实现从目录中过滤出指定文件类型的文件
2015/02/02 Python
在Django框架中设置语言偏好的教程
2015/07/27 Python
python利用socketserver实现并发套接字功能
2018/01/26 Python
对Python实现简单的API接口实例讲解
2018/12/10 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
python微信公众号开发简单流程实现
2020/03/09 Python
Python 用__new__方法实现单例的操作
2020/12/11 Python
python BeautifulSoup库的安装与使用
2020/12/17 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
墨西哥网上购物:Linio墨西哥
2016/10/20 全球购物
几个常见的消息中间件(MOM)
2014/01/08 面试题
WSDL的操作类型主要有几种
2013/07/19 面试题
医学生自荐信
2013/12/03 职场文书
大学生两会学习心得体会
2014/03/10 职场文书
设计专业自荐信
2014/06/19 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2015年大学生社会实践评语
2015/03/26 职场文书
闭幕词的写作格式与范文!
2019/06/24 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers
Vue router配置与使用分析讲解
2022/12/24 Vue.js