JavaScript

超轻量级php框架startmvc

JS实现的合并多个数组去重算法示例

更新时间:2020-07-05 23:48:01 作者:startmvc
本文实例讲述了JS实现的合并多个数组去重算法。分享给大家供大家参考,具体如下:vararr1

本文实例讲述了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));

运行结果:


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));

运行结果:


//合并多个数组,去重,排序
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));

运行结果:

PS:这里再为大家提供几款相关工具供大家参考使用:

在线去除重复项工具: http://tools.jb51.net/code/quchong

在线文本去重复工具: http://tools.jb51.net/aideddesign/txt_quchong

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具: http://tools.jb51.net/aideddesign/paixu_ys

JS 合并 多个数组 去重 算法