Javascript 如何声明三维阵列并逐步完成它?

Javascript 如何声明三维阵列并逐步完成它?,javascript,array-algorithms,Javascript,Array Algorithms,我正在处理这个Leetcode问题,但我不明白为什么在索引方面会出现错误。也就是说,第15行:TypeError:无法设置未定义的属性“0” 这个虫子怎么了 /** *@param{number[][]}M *@return{number} */ var longestLine=函数(M){ 如果(!M.length)返回0; 设1=0; 设dp=[[]]; 对于(设i=0;i第15行//左 dp[i][j][1]=j>0?dp[i][j-1][1]+1:1;//对 dp[i][j][2]=(i

我正在处理这个Leetcode问题,但我不明白为什么在索引方面会出现错误。也就是说,
第15行:TypeError:无法设置未定义的属性“0”

这个虫子怎么了

/**
*@param{number[][]}M
*@return{number}
*/
var longestLine=函数(M){
如果(!M.length)返回0;
设1=0;
设dp=[[]];
对于(设i=0;i第15行//左
dp[i][j][1]=j>0?dp[i][j-1][1]+1:1;//对
dp[i][j][2]=(i>0&&j>0)?dp[i-1][j-1][2]+1:1;//左上角
dp[i][j][3]=(i>0&&j
不应该
M[0]。length
应该
M[i]。length
您已经声明
dp
是一个三维数组,其中每个维度的长度为1。每当
i
j
不是0时,
dp[i][j]
将引用前两个维度中一个或两个维度中不存在的元素。因此,
dp[i][j]
将是未定义的,因此
dp[i][j][0]
将抛出一个错误。那么如何声明完整的3D数组?只需初始化
dp[i][j]=[]
。可能的重复