索引不是从0开始的多维数组javascript

索引不是从0开始的多维数组javascript,javascript,Javascript,我需要填充多维数组,但不是从第0个元素填充,而是从第3个元素填充,但尝试填充时出错: 代码是: var matrix = [ [] ]; matrix[3][0] = 10; print(matrix[3][0]); 然后出现错误: 无法设置属性“0”的值:对象为null或未定义 但当从第0个元素执行相同操作时,它会起作用: var matrix = [ [] ]; matrix[0][0] = 10; print(matrix[0][0]); 此处没有错误-为什么?创建初始阵列时: var

我需要填充多维数组,但不是从第0个元素填充,而是从第3个元素填充,但尝试填充时出错:

代码是:

var matrix = [ [] ];
matrix[3][0] = 10;
print(matrix[3][0]);
然后出现错误: 无法设置属性“0”的值:对象为null或未定义

但当从第0个元素执行相同操作时,它会起作用:

var matrix = [ [] ];
matrix[0][0] = 10;
print(matrix[0][0]);

此处没有错误-为什么?

创建初始阵列时:

var matrix = [ [] ];
这里有一个数组,其中只有一个零元素数组。此时,
矩阵[3]
未定义

根据问题的性质,可以通过多种方式初始化矩阵。这里有一个:

var matrix = [];
for (var i = 0; i < 10; ++i)
  matrix[i] = [];
var矩阵=[];
对于(变量i=0;i<10;++i)
矩阵[i]=[];

现在您有了10行,每行都是空的。

创建初始数组时:

var matrix = [ [] ];
这里有一个数组,其中只有一个零元素数组。此时,
矩阵[3]
未定义

根据问题的性质,可以通过多种方式初始化矩阵。这里有一个:

var matrix = [];
for (var i = 0; i < 10; ++i)
  matrix[i] = [];
var矩阵=[];
对于(变量i=0;i<10;++i)
矩阵[i]=[];

现在您有了10行,每行都是空的。

创建初始数组时:

var matrix = [ [] ];
这里有一个数组,其中只有一个零元素数组。此时,
矩阵[3]
未定义

根据问题的性质,可以通过多种方式初始化矩阵。这里有一个:

var matrix = [];
for (var i = 0; i < 10; ++i)
  matrix[i] = [];
var矩阵=[];
对于(变量i=0;i<10;++i)
矩阵[i]=[];

现在您有了10行,每行都是空的。

创建初始数组时:

var matrix = [ [] ];
这里有一个数组,其中只有一个零元素数组。此时,
矩阵[3]
未定义

根据问题的性质,可以通过多种方式初始化矩阵。这里有一个:

var matrix = [];
for (var i = 0; i < 10; ++i)
  matrix[i] = [];
var矩阵=[];
对于(变量i=0;i<10;++i)
矩阵[i]=[];


现在您有了10行,每一行都是空的。

首先为什么要这样做?因为
矩阵[3]
不存在。您必须从第0个索引初始化数组。在初始化之前不能直接访问第三个索引。
var matrix=[];矩阵[3]=[10];打印(矩阵[3][0])
JS没有多维数组,比如说,Pascal没有-JS有数组数组。首先为什么要这样做?因为
matrix[3]
不存在。必须从第零个索引初始化数组。在初始化之前不能直接访问第三个索引。
var matrix=[];矩阵[3]=[10];打印(矩阵[3][0])
JS没有多维数组,比如说,Pascal没有-JS有数组数组。首先为什么要这样做?因为
matrix[3]
不存在。必须从第零个索引初始化数组。在初始化之前不能直接访问第三个索引。
var matrix=[];矩阵[3]=[10];打印(矩阵[3][0])
JS没有多维数组,比如说,Pascal没有-JS有数组数组。首先为什么要这样做?因为
matrix[3]
不存在。必须从第零个索引初始化数组。在初始化之前不能直接访问第三个索引。
var matrix=[];矩阵[3]=[10];打印(矩阵[3][0])
JS没有多维数组,比如说,Pascal有-JS有数组数组。我还有一个问题。如果我需要使用多个矩阵数组元素,那么我必须在循环中或代码中的某个位置初始化所有矩阵数组元素,将每个矩阵数组元素初始化为数组?@user2968398我不确定我是否完全理解您的意思,但是是的-在将任何数组的元素用作数组之前,必须对其进行初始化。你不必提前做,你可以在尝试使用它之前检查,然后在那个时候初始化它。我还有一个问题。如果我需要使用多个矩阵数组元素,那么我必须在循环中或代码中的某个位置初始化所有矩阵数组元素,将每个矩阵数组元素初始化为数组?@user2968398我不确定我是否完全理解您的意思,但是是的-在将任何数组的元素用作数组之前,必须对其进行初始化。你不必提前做,你可以在尝试使用它之前检查,然后在那个时候初始化它。我还有一个问题。如果我需要使用多个矩阵数组元素,那么我必须在循环中或代码中的某个位置初始化所有矩阵数组元素,将每个矩阵数组元素初始化为数组?@user2968398我不确定我是否完全理解您的意思,但是是的-在将任何数组的元素用作数组之前,必须对其进行初始化。你不必提前做,你可以在尝试使用它之前检查,然后在那个时候初始化它。我还有一个问题。如果我需要使用多个矩阵数组元素,那么我必须在循环中或代码中的某个位置初始化所有矩阵数组元素,将每个矩阵数组元素初始化为数组?@user2968398我不确定我是否完全理解您的意思,但是是的-在将任何数组的元素用作数组之前,必须对其进行初始化。您不必提前完成,您可以在尝试使用它之前进行检查,并在那时初始化它。