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 相关文章推荐
一个关于jqGrid使用的小例子(行按钮)
Nov 04 Javascript
使用js完成节点的增删改复制等的操作
Jan 02 Javascript
JQuery的$和其它JS发生冲突的快速解决方法
Jan 24 Javascript
使用正则表达式的格式化与高亮显示json字符串
Dec 03 Javascript
自定义刻度jQuery进度条及插件
Sep 02 Javascript
javascript事件模型介绍
May 31 Javascript
Angularjs 自定义服务的三种方式(推荐)
Aug 02 Javascript
js实现鼠标拖动功能
Mar 20 Javascript
使用electron制作满屏心特效的示例代码
Nov 27 Javascript
vue-router的两种模式的区别
May 30 Javascript
Vue axios 将传递的json数据转为form data的例子
Oct 29 Javascript
使用vue cli4.x搭建vue项目的过程详解
May 08 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
php入门教程 精简版
2009/12/13 PHP
一个典型的PHP分页实例代码分享
2011/07/28 PHP
php中可能用来加密字符串的函数[base64_encode、urlencode、sha1]
2012/01/16 PHP
php类常量的使用详解
2013/06/08 PHP
windows中为php安装mongodb与memcache
2015/01/06 PHP
php实现删除空目录的方法
2015/03/16 PHP
如何实现动态删除javascript函数
2007/05/27 Javascript
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
js全屏显示显示代码的三种方法
2013/11/11 Javascript
JS延迟加载加快页面打开速度示例代码
2013/12/30 Javascript
jQuery mobile类库使用时加载导航历史的方法简介
2015/12/04 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
JS实现图片延迟加载并淡入淡出效果的简单方法
2016/08/25 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
基于Angular.js实现的触摸滑动动画实例代码
2017/02/19 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
JavaScript this绑定过程深入详解
2018/12/07 Javascript
微信小程序数据统计和错误统计的实现方法
2019/06/26 Javascript
[16:56]教你分分钟做大人:司夜刺客
2014/10/30 DOTA
python Django框架实现自定义表单提交
2016/03/25 Python
利用python模拟sql语句对员工表格进行增删改查
2017/07/05 Python
python决策树之CART分类回归树详解
2017/12/20 Python
Python Django Vue 项目创建过程详解
2019/07/29 Python
基于python实现判断字符串是否数字算法
2020/07/10 Python
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
意大利在线大学图书馆:Libreria universitaria
2019/07/16 全球购物
女方回门宴答谢词
2014/01/14 职场文书
安全生产检讨书
2014/01/21 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
生日赠语
2015/06/23 职场文书
活动新闻稿范文
2015/07/17 职场文书
班主任工作经验交流会总结
2015/11/02 职场文书
《围炉夜话》110句人生箴言,精辟有内涵,引人深思
2019/10/23 职场文书
彻底理解golang中什么是nil
2021/04/29 Golang
Springboot如何使用logback实现多环境配置?
2021/06/16 Java/Android
Mysql中一千万条数据怎么快速查询
2021/12/06 MySQL