Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
二维Javascript数组无法填充duel for循环_Javascript_For Loop_Multidimensional Array_Getelementbyid - Fatal编程技术网

二维Javascript数组无法填充duel for循环

二维Javascript数组无法填充duel for循环,javascript,for-loop,multidimensional-array,getelementbyid,Javascript,For Loop,Multidimensional Array,Getelementbyid,我正在编写一个需要使用Javascript二维数组的程序,所以我构建了这个测试平台来尝试向数组中添加值 如您所见,如果检查输出,循环将运行内部循环两次,然后停止,外部循环要求运行10次 谁能解释我做错了什么 HTML: 外部数组(按x索引)只有一个成员(单个数组)。试试这个: function arrayTest(input){ var array = []; var obj = document.getElementById(input); obj.value=""; var

我正在编写一个需要使用Javascript二维数组的程序,所以我构建了这个测试平台来尝试向数组中添加值

如您所见,如果检查输出,循环将运行内部循环两次,然后停止,外部循环要求运行
10次

谁能解释我做错了什么

HTML:

外部数组(按
x
索引)只有一个成员(单个数组)。试试这个:

function arrayTest(input){
  var array = [];
  var obj = document.getElementById(input);
  obj.value="";

  var x = 0, y = 0;

  for (x = 0; x < 10; x++)
  {
    array[x] = [];
    for (y = 0; y < 2; y++)
    {
      array[x][y] = "Hello World, x='" + x + "', y='" + y + "'\n";
      obj.value+=array[x][y];
    }
  }
}
函数数组测试(输入){
var数组=[];
var obj=document.getElementById(输入);
obj.value=“”;
变量x=0,y=0;
对于(x=0;x<10;x++)
{
数组[x]=[];
对于(y=0;y<2;y++)
{
数组[x][y]=“你好,世界,x=”“+x+”,y=”“+y+”\n”;
对象值+=数组[x][y];
}
}
}

这很有效,谢谢。你能解释一下发生了什么事吗?我不太明白。是否
array[x]=[]将数组添加到
x
?我认为初始化
vararray=newarray(newarray())
将足以在每个
x
中放入一个数组。它没有点击(当你创建一个二维数组时,你实际上是在创建一个数组数组。当你做
var-array=new-array(new-array());
时,你真正要做的就是
var-array=[[]];
。所以你只有一个内部数组,而每个
x
确实需要一个。所以当我们做
array[x]=[];
,我们为每个
x
创建一个新的内部数组,这就是我们想要的。这有意义吗?这真的很有趣,所以额外的
new array()
是多余的?因为我们根据您的建议在外部循环中添加了一个新数组,我们不再需要它:
var array=new array(new array());
相反,我只需要初始化它:
var-array=new-array();
这就是为什么我将它改为just
var-array=[];
。就个人而言,我更喜欢数组文字而不是
new-array()
,因为它更干净,并且类似于许多其他语言的数组语法。
function primaryCommand(input){
  arrayTest(input);
}

function arrayTest(input){
  // How large can an array be and still be safe?
  var array = new Array(new Array());
  var obj = document.getElementById(input);
  obj.value="";

  var x = 0, y = 0;

  for (x = 0; x < 10; x++)
  {
    for (y = 0; y < 2; y++)
    {
      array[x][y] = "Hello World, x='" + x + "', y='" + y + "'\n";
      obj.value+=array[x][y];
    }
  }
}
Hello World, x='0', y='0'
Hello World, x='0', y='1'
function arrayTest(input){
  var array = [];
  var obj = document.getElementById(input);
  obj.value="";

  var x = 0, y = 0;

  for (x = 0; x < 10; x++)
  {
    array[x] = [];
    for (y = 0; y < 2; y++)
    {
      array[x][y] = "Hello World, x='" + x + "', y='" + y + "'\n";
      obj.value+=array[x][y];
    }
  }
}