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]
  • 相关阅读:
    为TextBox定义快捷键
    (转)再谈“我是怎么招聘程序员的”
    (转)jQuery框架学习第二天:jQuery中万能的选择器
    (转)MongoDB学习笔记(一) MongoDB介绍及安装
    asp.net 导出CSV
    领域驱动设计下系统层次结构风格(转载)
    (转)谈谈数据加密的处理提供各种算法处理
    (转)REST服务开发实战
    领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处
    (转)你的工作不是命令人们去做什么
  • 原文地址:https://www.cnblogs.com/ljk001/p/8004626.html
Copyright © 2011-2022 走看看