2012-10-22 88 views
2

嘿家伙我在这里有一个情况。我有一个代码在这里出了一个二维。垂直输出二维阵列

<script> 
    Brady = new Array(3); 

    for (i = 0; i < Brady.length; ++i) { 
     Brady[i] = new Array(5); 
    } 

    Brady[0][0] = "Team 1"; 
    Brady[0][1] = "Carol"; 
    Brady[0][2] = "Greg"; 
    Brady[0][3] = "Greg"; 
    Brady[0][4] = "Greg"; 

    Brady[1][0] = "Team 2"; 
    Brady[1][1] = "Alice"; 
    Brady[1][2] = "Peter"; 
    Brady[1][3] = "Peter"; 
    Brady[1][4] = "Peter"; 

    Brady[2][0] = "Team 3"; 
    Brady[2][1] = "Mike"; 
    Brady[2][2] = "Bobby"; 
    Brady[2][3] = "Bobby"; 
    Brady[2][4] = "Bobby"; 




    function print_2d_string_array(array) { 
     document.writeln("<table border>"); 

     var row; 

     for (row = 0; row < array.length; ++row) { 
      document.writeln(" <tr>"); 

      var col; 

      for (col = 0; col < array[row].length; ++col) { 
       document.writeln(" <td>" + array[row][col] + "</td>"); 
      } 

      document.writeln(" </tr>"); 
     } 
     document.writeln("</table>"); 
    } 

    print_2d_string_array(Brady); 
</script> 

与放出来的:

Team 1 Carol Greg Greg Greg 
Team 2 Alice Peter Peter Peter 
Team 3 Mike Bobby Bobby Bobby 

,但我想做的事是

Team 1 Team 2 Team 3 
Carol Alice Mike 
Greg Peter Bobby 
Greg Peter Bobby 
Greg Peter Bobby 

我一直都花一个小时做,但即时通讯的运气.. PLSS帮我。

回答

4

尝试改变:

<script> 
Brady = new Array(3); 

for (i = 0; i < Brady.length; ++i) { 
    Brady[i] = new Array(5); 
} 

Brady[0][0] = "Team 1"; 
Brady[0][1] = "Carol"; 
Brady[0][2] = "Greg"; 
Brady[0][3] = "Greg"; 
Brady[0][4] = "Greg"; 

Brady[1][0] = "Team 2"; 
Brady[1][1] = "Alice"; 
Brady[1][2] = "Peter"; 
Brady[1][3] = "Peter"; 
Brady[1][4] = "Peter"; 

Brady[2][0] = "Team 3"; 
Brady[2][1] = "Mike"; 
Brady[2][2] = "Bobby"; 
Brady[2][3] = "Bobby"; 
Brady[2][4] = "Bobby"; 


function print_2d_string_array(array) { 
    document.writeln("<table border>"); 

    var col_len = array.length; 
    var row_len = array[0].length; 

    for (var i = 0; i < row_len; i++) { 
     document.writeln("<tr>"); 
     for (var j = 0; j < col_len; j++) { 
      document.writeln("<td>" + array[j][i] + "</td>"); 
     } 
     document.writeln("<tr>"); 
    } 
    document.writeln("</table>"); 
} 

print_2d_string_array(Brady);​ 
</script> 

这将输出:

Team 1 Team 2 Team 3 
Carol Alice Mike 
Greg Peter Bobby 
Greg Peter Bobby 
Greg Peter Bobby 

这是JSFiddle示例:http://jsfiddle.net/uNPXa/

+0

什么是数组[0] .length;做? – Aoi

+0

它获取一个二维数组的内部长度,检索行数。 –

+0

哥们可以介意给我解释一下循环是怎么发生的,cuz im kinda与数组[0] .length相混淆;以及它如何递增。因为我认为数组[0] .length; will = Brady [0]如何获得Brady [1]和Brady [2] – Aoi

0

你应该改变你的循环是这样的:

for (row = 0; row < array[0] . length; ++ row) 
{ 
    document . writeln (" <tr>"); 
    var col; 
    for (col = 0; col < array . length; ++ col) 
    { 
      document . writeln (" <td>" + array [col][row] + "</td>"); 
    } 
    document . writeln (" </tr>"); 
} 

注意,我在row < array[0] . length制作并array . length