JS的二维数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]]; 
alert(arr[1][0]); //a 第2列第1行所在的元素

实例二:

var arr = new array(new array(1,2),new array("a","b")); 
alert(arr[1][0]); 

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

var arr = new array();         //先声明一维 
       for(var i=0;i<5;i++){          //一维长度为5 
          arr[i]=new array();    //在声明二维 
          for(var j=0;j<5;j++){      //二维长度为5 
             arr[i][j]=1; 
       } 
} 

然后,遍历二维数组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文档。所以写入换行不能用"\n"。

 

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

var arr = [[1,2,4,6],[2,4,7,8],[8,9,10,11],[9,12,13,15]];
    //规律:首先选取数组中右上角的数字,如果该数字=要查找的数字,查找过程结束;如果该数字>要查找的数字,剔除这个数字所在的列;
    //如果该数字<要查找的数字,剔除这个数字所在的行。
    function find(arr,num){
        if(num==undefined){
            console.log(num+" is null");
            return;
        }
        while(num!=undefined&&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,undefined);
    console.log(result);

  

 

 

  

以上是关于JS的二维数组的主要内容,如果未能解决你的问题,请参考以下文章

js简洁代码片段

TensorFlow.js:那两个张量相等吗?

几个关于js数组方法reduce的经典片段

js如何定义二维数组,一维的key为动态值。就是要处理二级菜单显示。

php 二维数组传递给 js 问题解决记录

js 二维数组去重(续)