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

Javascript 我只能向二维数组中添加三个元素,而不是四个,javascript,Javascript,阵列也未打印。我犯了什么错?如何解决这个问题?很抱歉之前的答案,这是正确的答案 a[0][0] a[0][1] a[1][0] 函数arr() { var a=新数组(); var x; 对于(i=0;i您声明的数组比您应该声明的少一个。在本例中,您需要一个类似于[[],[]的数组。我将这样对它进行编码(以允许i和j的任何最大值): 函数arr(){ var a=[]; var x; 对于(i=0;i您的数组是这样创建的:a[[]] 因此,您只能访问a[0][0]和a[0][1],a[1]返

阵列也未打印。我犯了什么错?如何解决这个问题?

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

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

函数arr()
{
var a=新数组();
var x;

对于(i=0;i您声明的数组比您应该声明的少一个。在本例中,您需要一个类似于
[[],[]
的数组。我将这样对它进行编码(以允许
i
j
的任何最大值):

函数arr(){
var a=[];
var x;

对于(i=0;i您的数组是这样创建的:
a[[]]

因此,您只能访问
a[0][0]
a[0][1]
,a[1]返回未定义


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

谢谢!为什么新数组(new array())不起作用?它相当于一个[][]数组。对吗?java脚本支持var a=[]]?不,它相当于
[[]]
。我猜你是来自java还是C?
新数组(new array())
不是“数组数组”,它是一个数组对象,内部包含一个数组。是的,javascript支持数组文本,如
[]
,以及对象文本,如
{foo:'bar'}
。使用它们通常比使用
数组()
对象()更实际构造函数。很好。我来自C和C++背景。我想在JavaScript中找到一个[2 ] [2 ]。var j=(2)[2 ]是正确的。在JavaScript中,你不声明数组大小。你可以把整个事物声明为文字(<代码> var A[[[],[]] /代码>),或者在循环中创建嵌套数组(<代码> A[4])/COD>和<代码> A[1 ] < /代码>。(就像我的例子对
a[0]…a[i]
)所做的那样。这也会起作用,但我不喜欢它的样子:
var a=new Array(new Array(2),new Array(2))
。如果你向
Array
构造函数传递一个int,If将用该长度初始化一个数组,并填充未定义的值。如果你传递任何其他内容(或任何元素列表),您正在用这些元素填充数组。
a[0][0]
a[0][1]
a[1][0]
    <!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>
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]);
         }
     }

}