• JS的二维数组


    今天,记录一下JS的二位数组,并附上例题。

    一.二维数组的本质:数组中的元素又是数组。

      其实,我们都见过这样的二维数组,只不过没在意罢了,例如:

    var arr = [[1,2,4,6],[2,4,7,8],[8,9,10,11],[9,12,13,15]] //这就是一个二位数组
    arr[2][3]; // 11 注意:表示第三列第4行所在的元素。角标从0开始

    二.下面介绍二维数组的初始化

     记住了二维数组的本质,初始化也难不倒我们了。看一下实例

    实例一:  

    var arr = [[1,2],['a','b']]; 
    console.log(arr[1][0]); //a 第2列第1行所在的元素
    

    实例二:

    var arr = new Array(new Array(1,2),new Array("a","b")); 
    console.log(arr[1][0]); 

    实例三:二维数组的声明:

    var arr = new Array();         //先声明一维 
           for(var i=0;i<5;i++){          //一维长度为5 
              arr[i]=new Array(i);    //在声明二维 
              for(var j=0;j<5;j++){      //二维长度为5 
                 arr[i][j]=i; 
           } 
    } 
    然后,遍历二维数组arr
    for(var i=0;i<arr.length;i++){
        for(var j=0;j<arr[i].length;j++){
            document.write(arr[i][j]);
        }
        document.write("<br/>");  
    }
    结果:
      

    注意:我们写入换行是写入的标签,因为document.write()是写入到HTML文档。所以写入换行不能用" "。

    三、 例题:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的二维数组和一个整数,判断数组中是否含有该整数

    var arr = [[1,2,4,6],[2,4,7,8],[8,9,10,11],[9,12,13,15]];
        //规律:首先选取数组中右上角的数字,如果该数字=要查找的数字,查找过程结束;如果该数字>要查找的数字,剔除这个数字所在的列;
        //如果该数字<要查找的数字,剔除这个数字所在的行。
        function find(arr,num){
            if(num==null || num==''){
                console.log(num+" is null");
                return;
            }
            while(arr.length){
                var temp = arr[arr.length-1][0];
                if(num == temp){
                    console.log(num+"is finded");
                    return temp;
                }else if(temp>num){
                    arr.pop();
                    if(arr.length == 1){
                        console.log(num + " is not exists,"+num+" is less the minValue");
                        return;
                    }
                }else{
                    for(var i=0;i<arr.length;i++){
                        if(arr[i].length ==1){
                            console.log(num + " is not exists,"+num+" is more than the maxValue");
                            return;
                        }
                        arr[i].shift();
                    }
                }
            }
        }
        var result = find(arr,18);
        console.log(result);
    

      

     

     

      

  • 相关阅读:
    什么是Shader
    [Tip: Interface Implementation]
    Focus在某一领域的软件开发 + 在那一领域无限扩展视野
    [Tip: VS]Several IDE Tips and Tricks
    [Tip C# collection]List<Employee> or EmployeeList?
    [Tip Regular expression]Test Regular Expressions With The Regulator
    VS2005设计智能客户端(轉)
    第1章 本书会讨论什么内容
    [导入]关于Sprite.Draw2D
    C#面試(轉)
  • 原文地址:https://www.cnblogs.com/ymwangel/p/5875081.html
Copyright © 2020-2023  润新知