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文檔。所以寫入換行不能用"\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==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);

  

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM