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 相关文章推荐
10个新的最有前途的JavaScript框架
Mar 12 Javascript
EXTJS记事本 当CompositeField遇上RowEditor
Jul 31 Javascript
js获取 type=radio 值的方法
May 09 Javascript
jQuery学习笔记之toArray()
Jun 09 Javascript
JavaScript设计模式之策略模式实例
Oct 10 Javascript
jQuery制作仿Mac Lion OS滚动条效果
Feb 10 Javascript
javascript正则表达式定义(语法)总结
Jan 08 Javascript
jQuery中on方法使用注意事项详解
Feb 15 Javascript
js实现日历与定时器
Feb 22 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
Dec 15 Javascript
Vue模板语法中数据绑定的实例代码
May 17 Javascript
用几道面试题来看JavaScript执行机制
Apr 30 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
Zend Studio使用技巧两则
2016/04/01 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
php+html5+ajax实现上传图片的方法
2016/05/14 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
Opacity.js
2007/01/22 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
js正则表达式验证邮件地址
2015/11/12 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
微信小程序获取用户信息并保存登录状态详解
2019/05/10 Javascript
js中Function引用类型常见有用的方法和属性详解
2019/12/11 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
[04:13]2014DOTA2国际邀请赛 专访DC目前形势不容乐观
2014/07/12 DOTA
[02:27]2018DOTA2亚洲邀请赛赛前采访-OpTic
2018/04/03 DOTA
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
Django 权限认证(根据不同的用户,设置不同的显示和访问权限)
2019/07/24 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
python中的selenium安装的步骤(浏览器自动化测试框架)
2020/03/17 Python
Python 实现将某一列设置为str类型
2020/07/14 Python
python 三种方法实现对Excel表格的读写
2020/11/19 Python
一款利用css3的鼠标经过动画显示详情特效的实例教程
2014/12/29 HTML / CSS
无需JS和jQuery代码实现CSS3鼠标浮动放大图片
2016/11/21 HTML / CSS
英国DVD和蓝光碟片购买网站:Zoom.co.uk(电影和电视)
2019/09/23 全球购物
C语言笔试题
2014/09/04 面试题
优秀学生事迹材料
2014/02/08 职场文书
创新比赛获奖感言
2014/02/13 职场文书
鸿星尔克广告词
2014/03/21 职场文书
2014业务员年终工作总结
2014/12/09 职场文书
2014年底工作总结
2014/12/15 职场文书
zabbix 代理服务器的部署与 zabbix-snmp 监控问题
2022/07/15 Servers