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 相关文章推荐
Google Map API更新实现用户自定义标注坐标
Jul 29 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
Jun 28 Javascript
jquery中:input和input的区别分析
Jul 13 Javascript
使用js实现雪花飘落效果
Aug 26 Javascript
js创建一个input数组并绑定click事件的方法
Jun 12 Javascript
jQuery实现鼠标滚轮动态改变样式或效果
Jan 05 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
Aug 06 Javascript
深入理解node.js之path模块
May 03 Javascript
vue使用vue-cli快速创建工程
Jul 28 Javascript
vue自定义指令directive实例详解
Jan 17 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
Jul 24 Javascript
详解vite+ts快速搭建vue3项目以及介绍相关特性
Feb 25 Vue.js
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
codeigniter教程之上传视频并使用ffmpeg转flv示例
2014/02/13 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
PHP常见字符串处理函数用法示例【转换,转义,截取,比较,查找,反转,切割】
2016/12/24 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
JavaScript中isPrototypeOf函数作用和使用实例
2015/06/01 Javascript
JQuery遍历DOM节点的方法
2015/06/11 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
AngularJS指令与控制器之间的交互功能示例
2016/12/14 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
详解Vue中的watch和computed
2020/11/09 Javascript
python递归删除指定目录及其所有内容的方法
2017/01/13 Python
python中的for循环
2018/09/28 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
Django 限制访问频率的思路详解
2019/12/24 Python
python百行代码自制电脑端网速悬浮窗的实现
2020/05/12 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
HTML5 Canvas实现玫瑰曲线和心形图案的代码实例
2014/04/10 HTML / CSS
适合各种场合的美食礼品:Harry & David
2016/08/03 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
SmartBuyGlasses意大利:购买太阳镜、眼镜和隐形眼镜
2018/11/20 全球购物
荷兰时尚精品店:Labels Fashion
2020/03/22 全球购物
教师岗位职责
2013/11/17 职场文书
总裁秘书岗位职责
2013/12/04 职场文书
企业为何需要商业计划书
2013/12/26 职场文书
经济类毕业生求职信
2014/06/26 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
毕业实习自我鉴定范文2014
2014/09/26 职场文书
被告答辩状范文
2015/05/22 职场文书
公司开业致辞
2015/07/29 职场文书
禁毒主题班会教案
2015/08/14 职场文书
初中班级口号霸气押韵
2015/12/24 职场文书