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自动适应的图片弹窗实例
Jun 29 Javascript
jQuery实现的图片分组切换焦点图插件
Jan 06 Javascript
js实现在网页上简单显示时间的方法
Mar 02 Javascript
js实现拉幕效果的广告代码
Sep 02 Javascript
javascript中的作用域和闭包详解
Jan 13 Javascript
如何使用Bootstrap 按钮实例详解
Mar 29 Javascript
node 利用进程通信实现Cluster共享内存
Oct 27 Javascript
vue中render函数的使用详解
Oct 12 Javascript
微信小程序自定义可滑动日历界面
Dec 28 Javascript
微信小程序canvas绘制圆角base64图片的实现
Aug 18 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
Apr 28 Javascript
node koa2 ssr项目搭建的方法步骤
Dec 11 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插入排序实现代码
2013/04/04 PHP
PHP Swoole异步读取、写入文件操作示例
2019/10/24 PHP
laravel框架使用极光推送消息操作示例
2020/02/15 PHP
列表内容的选择
2006/06/30 Javascript
js修改table中Td的值(定义td的单击事件)
2013/01/10 Javascript
Js操作Select大全(取值、设置选中等等)
2013/10/29 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
javascript简单实现滑动菜单效果的方法
2015/07/27 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
jQuery原理系列-常用Dom操作详解
2016/06/07 Javascript
JavaScript框架Angular和React深度对比
2017/11/20 Javascript
解决vue 格式化银行卡(信用卡)每4位一个符号隔断的问题
2018/09/14 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
2018/10/10 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
[04:00]DOTA2解说界神雕侠侣 CJ第四天谷子现场过生日
2013/07/30 DOTA
[01:43]倾听DOTA2英雄之声 魅惑魔女国服配音鉴赏
2013/06/06 DOTA
[42:23]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第二场 12.10
2020/12/13 DOTA
python实现可视化动态CPU性能监控
2018/06/21 Python
django项目搭建与Session使用详解
2018/10/10 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
Python hashlib模块实例使用详解
2019/12/24 Python
Python解析多帧dicom数据详解
2020/01/13 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
美国知名运动产品零售商:Foot Locker
2016/07/23 全球购物
ProBikeKit美国官网:自行车套件,跑步和铁人三项套件
2016/10/13 全球购物
数组越界问题
2015/10/21 面试题
幼儿园国庆节活动方案
2014/02/01 职场文书
实习生求职自荐信
2014/02/07 职场文书
《周恩来的四个昼夜》观后思想汇报范文两篇
2014/09/10 职场文书
2014年城管个人工作总结
2014/12/08 职场文书
军训个人总结
2015/03/03 职场文书
大学学生会竞选稿
2015/11/19 职场文书
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis