为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

浮云间 2022-10-27 15:24:05
<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 ,只使用相同的数组代码作为片段工作。目标是制作数组和表格,获取用户输入的大小,当然稍后制作一个包含数组内容的表格。
查看完整描述

1 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

该表在您首先循环输入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 string

var myArr = new Array(y); 


// loop 1 time, as there is 1 item

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

    

    // set index 0 of the array to a new array with the y input of "2"

    myArr[i] = new Array(y);

}

这myArr是一个二维数组而不是一维数组,因为您将数组包装在一个数组中:


myArr = [

  [

    "2"

  ]

]


查看完整回答
反对 回复 2022-10-27
  • 1 回答
  • 0 关注
  • 76 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信