zoukankan      html  css  js  c++  java
  • JS合并多个数组去重算法

     
    1. var arr1 = ['a','b'];  
    2. var arr2 = ['a','c','d'];  
    3. var arr3 = [1,'d',undefined,true,null];
    4. //合并两个数组,去重  
    5. var concat_ = function(arr1,arr2){  
    6.     //不要直接使用var arr = arr1,这样arr只是arr1的一个引用,两者的修改会互相影响  
    7.     var arr = arr1.concat();  
    8.     //或者使用slice()复制,var arr = arr1.slice(0)  
    9.     for(var i=0;i<arr2.length;i++){  
    10.         arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;  
    11.     }  
    12.     return arr;  
    13. }  
    1. //合并多个数组,去重  
    2. var concat = function(arr1,arr2,arr3){  
    3.     if(arguments.length <= 1){  
    4.         return false;  
    5.     }  
    6.     var concat_ = function(arr1,arr2){  
    7.         var arr = arr1.concat();  
    8.         for(var i=0;i<arr2.length;i++){  
    9.             arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;  
    10.         }  
    11.         return arr;  
    12.     }  
    13.     var result = concat_(arr1,arr2);  
    14.     for(var i=2;i<arguments.length;i++){  
    15.         result = concat_(result,arguments[i]);  
    16.     }  
    17.     return result;  
    18. }  
    19. //合并多个数组,去重,排序  
    20. var arr1 = [1,6,4,0];  
    21. var arr2 = [8,20,7,4.5];  
    22. var arr3 = [6,0,7,90,2];  
    23.   
    24. var concat = function(arr1,arr2,arr3){  
    25.     if(arguments.length <= 1){  
    26.         return false;  
    27.     }  
    28.     var concat_ = function(arr1,arr2){  
    29.         var arr = arr1.concat();  
    30.         for(var i=0;i<arr2.length;i++){  
    31.             arr.indexOf(arr2[i]) === -1 ? arr.push(arr2[i]) : 0;  
    32.         }  
    33.         return arr;  
    34.     }  
    35.     var result = concat_(arr1,arr2);  
    36.     for(var i=2;i<arguments.length;i++){  
    37.         result = concat_(result,arguments[i]);  
    38.     }  
    39.     //排序  
    40.     function sortNumber(a,b){  
    41.         return a - b;  
    42.     }  
    43.     return result.sort(sortNumber);  
    44. }  
     
     
    //查找两个数组的重复项
    代码如下:
        var desk=function(arr1,arr2){
            var arr=[];
            for(var i=0;i<arr2.length;i++){
                if(arr1.indexOf(arr2[i])!==-1){
                    arr.push(arr2[i]);
                }
            }
            return arr;
        };
        var a=desk([1,2,4,5,6,7,8],[2,3,4,5,7,8]);
        console.log(a);  //[2,4,6,7,8]
  • 相关阅读:
    Git 标签管理
    Git 分支管理
    HTTP 400 错误 编译器错误消息: CS0016
    使用DOS指修改文件名
    跨服务器连接数据库
    SharePoint 2013 页面访问,Url中间多一段"_layouts/15/start.aspx#"
    SharePoint 2013 搜索高级配置
    sharepoint 2013 创建母版页
    SharePoint 2013上传AI格式文件,再次下载后变成了PS格式文件
    SharePoint 2013 配置启用搜索服务
  • 原文地址:https://www.cnblogs.com/ljk001/p/8004626.html
Copyright © 2011-2022 走看看