0
<!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]

数组也不会打印。我的错误是什么?如何解决这个问题?

4

3 回答 3

1

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

    <!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 中创建二维数组?

于 2013-02-07T02:44:50.303 回答
1

您声明的数组少于应有的数组。对于这个例子,你需要一个像[[],[]]. i我会这样编码(以允许and的任何最大值j):

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]);
         }
     }

}

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

于 2013-02-07T02:45:51.587 回答
0

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

所以你只能访问a[0][0]and a[0][1],而 a[1] 返回 undefined。

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

于 2013-02-07T02:47:29.777 回答