为什么数组显示为 1D 而不是 2D 但表格有效?

<html>

<head>

<meta charset="utf-8"/>


</head>


<form name="formular">

<label>Zeilen eingeben:     

        <input id="inpZeile" name="inpZeile" type=number value="2">

</label>

<label>Spalten eingeben:

        <input id="inpSpalte" name="inpSpalte" type=number value="2">

</label>

</form>

<button type="button" onclick="machTabelle(document.forms.formular.elements.inpSpalte.value, document.forms.formular.elements.inpZeile.value)" id="MachTabelle">Tabelle erstellen</button>

</html>




<script src="testen.js"></script>


var table ='';

function machTabelle(x,y)

{

    var myArr = new Array(x);

    for (var i = 0; i < myArr.length; i++)

    {

        myArr[i] = new Array(y);

        

    };

    console.log (myArr);


        for(var i=0; i<x; i++)

        {

        table += '<tr>';

            for(var j =0;j<y;j++)

            {

                table += '<td>' +j+ '</td>';

            }

        table += '<tr>';

        }   

document.write('<table border=1>' +table+ '</table>');

}

我改变了一些东西,但它总是返回一个 1D 数组而不是 2D ,只使用相同的数组代码作为片段工作。


目标是制作数组和表格,获取用户输入的大小,当然稍后制作一个包含数组内容的表格。


浮云间
浏览 95回答 1
1回答

四季花海

该表在您首先循环输入x然后循环输入时工作y请注意,函数中没有变量table。var table = "";例如,您可以添加myArr不用于生成表的示例。当您创建一个数组Array(y)时y,输入是一个字符串。(注意函数参数和输入字段的顺序。)请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Array例如machTabelle('3', '2')查看内联注释:// Array with index 0 has the value of the input "2" as you are passing a stringvar myArr = new Array(y);&nbsp;// loop 1 time, as there is 1 itemfor (var i = 0; i < myArr.length; i++) {&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; // set index 0 of the array to a new array with the y input of "2"&nbsp; &nbsp; myArr[i] = new Array(y);}这myArr是一个二维数组而不是一维数组,因为您将数组包装在一个数组中:myArr = [&nbsp; [&nbsp; &nbsp; "2"&nbsp; ]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript