我只能在二维数组中添加三个元素,而不是四个

I can only add three elements to two-dimensional array, instead of four

本文关键字:元素 四个 三个 二维数组 添加      更新时间:2023-09-26
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title></title>
  <script type="text/javascript">
     function arr(){
     var a=new Array(new Array());
     var x;
     for(i=0;i<2;i++)
     {
         for(j=0;j<2;j++)
         {
             x=prompt("Enter an element for a["+i+"]["+j+"]"," ");
             a[i][j]=x;
         }
     }
     for(i=0;i<2;i++)
     {
         for(j=0;j<2;j++)
         {
            document.write(a[i][j]);
         }
     }
     document.close();
     }

     </script>
</head>
<body onLoad="arr();">
</body>
</html>

上面的代码在Firefox上进行了测试。只显示三个提示,而不是四个:

a[0][0]
a[0][1]
a[1][0]

阵列也不会打印。我犯了什么错?如何解决此问题?

您声明的数组比您应该声明的少一个。对于本例,您需要一个类似[[],[]]的数组。我会这样编码(以允许ij的任何最大值(:

function arr(){
     var a = [];
     var x;
     for(i=0;i<2;i++){
         a[i] = [];
         for(j=0;j<2;j++){
             x=prompt("Enter an element for a["+i+"]["+j+"]"," ");
             a[i][j]=x;
         }
     }
     for(i=0;i<2;i++){
         for(j=0;j<2;j++){
            document.write(a[i][j]);
         }
     }
}

它也没有打印的原因是丢失的数组导致了一个错误,中断了函数的执行。

真的很抱歉之前的答案,这是正确的答案

    <!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title></title>
  <script type="text/javascript">
     function arr()
     {
     var a = new Array();
     var x;
 for(i=0;i<2;i++)
 {
     a[i] = new Array();
     for(j=0;j<2;j++)
     {
         x="";
         x = prompt("Enter an element for a["+i+"]["+j+"]","");
     }
 }
 for(i=0;i<2;i++)
 {
     for(j=0;j<2;j++)
     {
        document.write(a[i][j]);
     }
 }
 document.close();
 }

 </script>

问题是必须在第一个数组中声明新数组示例:如何在JavaScript中创建二维数组?

您的数组是这样创建的:a[[]]

因此,您只能访问a[0][0]a[0][1],并且a[1]返回undefined。

你可以这样创建你的数组。a = [[], []];,这将解决您的问题。