在JavaScript中没有多维数组的概念,但是JavaScript中支持多维(包括二维)数组。也就是说,不能通过构造函数直接生成多维数组,如var score=new Array(10)(10);是错误的。可以通过数组里的元素是数组来模拟多维数组…

解决方案 »

  1.   


    arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]
    <script language="javascript">
    <!--
    var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]; 
    for(var i=0;i <arr.length;i++) 
      { 
        
          if(arr[i].length) 
            { 
              for(var j=0;j <arr[i].length;j++) 
              { 
                  if(arr[i][j].length) 
                    { 
    //                for(var k=0;k <arr[i][j] <length;k++) //err:  "<" 
                    for(var k=0;k <arr[i][j].length;k++) 
                      { 
                        alert(arr[i][j][k]); 
                      } 
                    } 
                  else 
                  {  
                    alert(arr[i][j]); 
                }
            }//err:Lost"}"  
      } 
            else 
            { 
              alert(arr[i]); 
      } 
        }
    //-->
    </script>
      

  2.   


    var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]];  for(var i=0;i <arr.length;i++) 
      {
        for(var j=0;j <arr[i].length;j++) 
        { 
     alert(arr[i][j]);//最后一个是:21,32,32,32 下一个循环打印
           for(var k=0;k <arr[i][j].length;k++) 
             { 
               alert(arr[i][j][k]); 
             } 
          } 
                 
      } 
      

  3.   

     var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]; //模拟三维数组
      for(var i=0;i <arr.length;i++) 
      { 
       if(arr[i].length) //if的条件只能是true 或者false 的表达式
       { 
         for(var j=0;j <arr[i].length;j++) 
          { 
            if(arr[i][j].length) //if的条件只能是true 或者false的表达式
              { 
               for(var k=0;k <arr[i][j] <length;k++) //这里 k <arr[i][j] <length 应该改为k <arr[i][j].length
                  { 
                        alert(arr[i][j][k]); 
                   } 
                 } 
              else //if的条件只能是true 或者false的表达式
               {  
                 alert(arr[i][j]); 
                } 
             } 
       else //if的条件只能是true 或者false的表达式
        { 
           alert(arr[i]); 
         } 
      }
      

  4.   

    看来有必要解释一下:
    在JavaScript中没有多维数组的概念,但说JavaScript中支持多维(包括二维)数组,这句话相对于:可以通过数组里的元素是数组来模拟多维数组…如楼主你的 var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]];
    说不支持的解说:不能通过构造函数直接生成多维数组,如var score=new Array(10)(10),是错误的。
    我二楼里面说的那句话,是“编程浪子”问脚本专家时的回答…
      

  5.   

    在JavaScript中没有多维数组的概念,但是JavaScript中支持多维(包括二维)数组。
    可以模拟实现,代码如下:
    var arr1=new Array(3);
    var arr1[0]=new Array(3);
    var arr1[0][0]=new Array(3);
    这样就实现了三维数组。调用可以直接写成这样即可:arr1[0][0][0]
      

  6.   

    自己试一下下面的,应该弹出 3<script>
      var arr = new Array([[1,2],[3,4]],[[5,6],[7,8]]);
      alert(arr[0][1][0]);
    </script>
      

  7.   

    感谢.朋友们的耐心解答..我也仔细的检查了一下代码,才发现"."误写成"<"..
    可是改正书写错误之后,还是不能执行代码..我试了一下,这个数组:[1,23,344,544,[23,12,12,21,12,[21,32,32,32]]]如果直接给定模拟数组的下标,倒是可以读出来.
    如:alert(arr[4][5][3]);但是为什么我的那个循环就不能执行呢?是那里写错了?我应该怎么写才是正确的呢?期待朋友们能给抽空给小弟一个答复..能给我一个范例..或者指出我的错误所在!小弟在些谢过!
      

  8.   


    var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]];  for(var i=0;i <arr.length;i++) 
      {
        for(var j=0;j <arr[i].length;j++) 
        { 
         alert(arr[i][j]);//最后一个是:21,32,32,32 下一个循环打印       for(var k=0;k <arr[i][j].length;k++) 
             { 
               alert(arr[i][j][k]); //这里逐个打印21 32 32 32
             } 
          } 
                 
      }  楼主你还想咋样呢?说说看…或许能帮上忙… 
      

  9.   

    几天没来了!现在贴上最后的代码.以表谢意!
    以下的代码可以依次的显示所定义的模拟的三维数组(为什么用"模拟"?因为前面的很多朋友说了,JS里并不支持真正的数组)
    希望在以后的学习路上能与大家有更多的交流!  var arr = [1,23,344,544,[23,12,12,21,12,[21,32,32,32]]];
      for(var i=0;i<arr.length;i++)
      {
         
         if(arr[i].length)
            {
               for(var j=0;j<arr[i].length;j++)
               {
       if(arr[i][j].length)
    {
     for(var k=0;k<arr[i][j].length;k++)
      {
    alert(arr[i][j][k]);
      }
     }
       else
       {   
    alert(arr[i][j]); 
       } 
    }
     }
            else
            {
              alert(arr[i]);
            }
       }以上就是全部的代码,,希望对和我一样的初学者有帮助!
    其实和刚开始发上来的代码没有什么区别,就是因为少了"}"符号;和把"."误写成了"<".
    在这里也希望大家不要和我犯同样的错误!