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 相关文章推荐
在IE上直接编辑网页内容的js代码(IE地址栏js)
Apr 27 Javascript
简单js代码实现selece二级联动(推荐)
Feb 18 Javascript
JS控制网页动态生成任意行列数表格的方法
Mar 09 Javascript
基于Vue.js实现数字拼图游戏
Aug 02 Javascript
jquery实现(textarea)placeholder自动换行
Dec 22 Javascript
bootstrap IE8 兼容性处理
Mar 22 Javascript
作为老司机使用 React 总结的 11 个经验教训
Apr 08 Javascript
获取当前按钮或者html的ID名称实例(推荐)
Jun 23 Javascript
全面介绍vue 全家桶和项目实例
Dec 27 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
Oct 12 Javascript
微信小程序MUI侧滑导航菜单示例(Popup弹出式,左侧不动,右侧滑动)
Jan 23 Javascript
浅谈nuxtjs校验登录中间件和混入(mixin)
Nov 06 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
图形数字验证代码
2006/10/09 PHP
PHP中iconv函数转码时截断字符问题的解决方法
2015/01/21 PHP
PHP进行批量任务处理不超时的解决方法
2016/07/11 PHP
php简单统计中文个数的方法
2016/09/30 PHP
Laravel中log无法写入问题的解决
2017/06/17 PHP
PHP实现的mysql操作类【MySQL与MySQLi方式】
2017/10/07 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
JS JSON对象转为字符串的简单实现方法
2013/11/18 Javascript
ECMAScript 6即将带给我们新的数组操作方法前瞻
2015/01/06 Javascript
jquery实现点击变换导航样式的方法
2015/08/31 Javascript
获取阴历(农历)和当前日期的js代码
2016/02/15 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
2016/04/01 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
jquery 正整数数字校验正则表达式
2017/01/10 Javascript
如何用js判断dom是否有存在某class的值
2017/02/13 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
源码分析Vue.js的监听实现教程
2017/04/23 Javascript
JavaScript深拷贝和浅拷贝概念与用法实例分析
2018/06/07 Javascript
vue的style绑定background-image的方式和其他变量数据的区别详解
2018/09/03 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
微信小程序选择图片控件
2021/01/19 Javascript
Python的randrange()方法使用教程
2015/05/15 Python
python+opencv轮廓检测代码解析
2018/01/05 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Python 学习教程之networkx
2019/04/15 Python
Python实现Canny及Hough算法代码实例解析
2020/08/06 Python
html5 datalist 选中option选项后的触发事件
2020/03/05 HTML / CSS
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
JAVA代码查错题
2014/10/10 面试题
酒店保洁主管岗位职责
2013/11/28 职场文书
学习党的群众路线剖析材料
2014/10/09 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
公司2014年度工作总结
2014/12/10 职场文书
银行稽核岗位职责
2015/04/13 职场文书
建党伟业观后感
2015/06/01 职场文书
Go标准容器之Ring的使用说明
2021/05/05 Golang