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

我花了一个小时来做​​那件事,但我运气不好..请帮助我。

4

2 回答 2

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/

于 2012-10-22T05:24:32.450 回答
1

你应该像这样改变你的 for 循环:

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] . lengtharray . length

于 2012-10-22T05:23:31.857 回答