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 相关文章推荐
js 效率组装字符串 StringBuffer
Dec 23 Javascript
Lazy Load 延迟加载图片的jQuery插件中文使用文档
Oct 18 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
快速使用Bootstrap搭建传送带
May 06 Javascript
JS使用cookie设置样式的方法
Jun 30 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
Nov 23 Javascript
BootStrap fileinput.js文件上传组件实例代码
Feb 20 Javascript
angularJS模态框$modal实例代码
May 27 Javascript
详解Node中导入模块require和import的区别
Aug 11 Javascript
在Express中提供静态文件的实现方法
Oct 17 Javascript
js函数和this用法实例分析
Mar 13 Javascript
vue实现五子棋游戏
May 28 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网站被挂木马后的修复方法总结
2014/11/06 PHP
基于PHP实现邮箱验证激活过程详解
2020/10/28 PHP
基于json的jquery地区联动效果代码
2011/07/06 Javascript
基于jquery的弹出提示框始终处于窗口的居中位置(类似于alert弹出框的效果)
2011/09/28 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
简介JavaScript中valueOf()方法的使用
2015/06/05 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
2019/06/11 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
微信小程序实现3D轮播图效果(非swiper组件)
2019/09/21 Javascript
微信jssdk踩坑之签名错误invalid signature
2020/05/19 Javascript
python+selenium实现京东自动登录及秒杀功能
2017/11/18 Python
使用python为mysql实现restful接口
2018/01/05 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
python画折线图的程序
2018/07/26 Python
Python pygorithm模块用法示例【常见算法测试】
2018/08/16 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
英国创新设计文具、卡片和礼品包装网站:Paperchase
2018/07/14 全球购物
保护环境建议书
2014/03/12 职场文书
弘扬职业精神演讲稿
2014/03/20 职场文书
参赛口号
2014/06/16 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
离婚协议书范文2014(夫妻感情破裂)
2014/12/14 职场文书
党员自我评价2015
2015/03/03 职场文书
MySQL派生表联表查询实战过程
2022/03/20 MySQL