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 でテストされています。4 つではなく、3 つのプロンプトのみが表示されます。

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で2次元配列を作成するにはどうすればよいですか?

于 2013-02-07T02:44:50.303 に答える
1

必要な数よりも 1 つ少ない配列を宣言しています。この例では、 のような配列が必要です[[],[]]。次のようにコーディングします(およびの最大値を許可するため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]);
         }
     }

}

それも印刷されなかった理由は、欠落している配列がエラーを引き起こし、関数の実行を中断したためです。

于 2013-02-07T02:45:51.587 に答える
0

配列は次のように作成されます。a[[]]

a[0][0]したがって、とのみにアクセスできa[0][1]、 a[1] は未定義を返します。

このように配列を作成できます。a = [[], []];、これで問題が解決します。

于 2013-02-07T02:47:29.777 に答える