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 相关文章推荐
jquery(live)中File input的change方法只起一次作用的解决办法
Oct 21 Javascript
javascript表单验证大全
Aug 12 Javascript
js实现继承的5种方式
Dec 01 Javascript
EasyUI中在表单提交之前进行验证
Jul 19 Javascript
JS代码实现百度地图 画圆 删除标注
Oct 12 Javascript
微信小程序 获取二维码实例详解
Jun 23 Javascript
微信小程序获取微信运动步数的实例代码
Jul 20 Javascript
vue-quill-editor实现图片上传功能
Aug 08 Javascript
浅谈Vuejs Prop基本用法
Aug 17 Javascript
JavaScript创建、读取和删除cookie
Sep 03 Javascript
HTML+JavaScript实现扫雷小游戏
Sep 30 Javascript
解决vue安装less报错Failed to compile with 1 errors的问题
Oct 22 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 生成随机验证码图片代码
2010/02/08 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
php实现获取局域网所有用户的电脑IP和主机名、及mac地址完整实例
2014/07/18 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
javascript 字符串连接的性能问题(多浏览器)
2008/11/18 Javascript
jQuery学习7 操作JavaScript对象和集合的函数
2010/02/07 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
javascript温习的一些笔记 基础常用知识小结
2011/06/22 Javascript
js图片预加载示例
2014/04/30 Javascript
JS实现无限级网页折叠菜单(类似树形菜单)效果代码
2015/09/17 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
基于Vue的ajax公共方法(详解)
2018/01/20 Javascript
vue 解决addRoutes动态添加路由后刷新失效问题
2018/07/02 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
JQuery中queue方法用法示例
2019/01/31 jQuery
node crawler如何添加promise支持
2020/02/01 Javascript
Antd中单个DatePicker限定时间输入范围操作
2020/10/29 Javascript
[58:37]Serenity vs Fnatic 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
Python处理字符串之isspace()方法的使用
2015/05/19 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
利用CSS3的checked伪类实现OL的隐藏显示的方法
2010/12/18 HTML / CSS
Linux Interview Questions For software testers
2013/05/17 面试题
大学生毕业自我评价范文分享
2013/11/07 职场文书
管理学专业个人求职信范文
2013/12/13 职场文书
小学体育教学反思
2014/01/31 职场文书
中职招生先进个人材料
2014/08/31 职场文书
诚实守信演讲稿
2014/09/01 职场文书
党员群众路线学习心得体会
2014/11/04 职场文书
2014年流动人口工作总结
2014/11/26 职场文书
商业计划书如何写?关键问题有哪些?
2019/07/11 职场文书
话题作文之学会尊重
2019/12/16 职场文书
mysql的单列多值存储实例详解
2022/04/05 MySQL