多个数组去重合并

问题:

写一个 function,传入两个或两个以上的数组,返回一个以给定的原始数组排序的不包含重复值的新数组。

换句话说,所有数组中的所有值都应该以原始顺序被包含在内,但是在最终的数组中不包含重复值。

非重复的数字应该以它们原始的顺序排序,但最终的数组不应该以数字顺序排序。

代码如下:

 1 function unite(arr1, arr2, arr3) {
 2   if(arguments.length === 0)  //判断参数个数
 3     return undefined;
 4   if(arguments.length === 1)
 5     {
 6       arr1 = arguments[0];
 7       return arr1;
 8     }
 9   for(var i = 1;i < arguments.length ;i++)
10     {
11       for(var j = 0;j < arguments[i].length ;j++)
12       {
13          if(arr1.indexOf(arguments[i][j]) == -1)
14           {
15             arr1.push(arguments[i][j]);
16           }     
17       }
18     }
19   return arr1;
20   
21 }

 

 

posted @ 2018-10-15 14:41  沐子庭  阅读(524)  评论(0编辑  收藏  举报