我需要编写一个函数来返回一个生成二维数组的函数。函数 mult(x,y) 应该返回一个生成乘法表的函数,调用 generate_matrix() 应该返回矩阵。
function mult(x,y){
function generate_matrix(){
var matrix = new Array(x);
for(var k = 0; k < x+1; k++){
matrix[k] = new Array(y);
}
for(var i = 0; i < x+1; i++){
for(var j = 0; j < y+1; j++){
matrix[i][j] = i*j;
}
}
return matrix;
}
return generate_matrix;
}
出于某种原因,矩阵比应有的大 100 倍。例如,如果我设置 var matrix = mult(5,5),然后调用 matrix(),我会得到一个大小为 50x50 的数组,而不是大小为 5x5 的数组。
我设置var m = mult(2,2)
,然后调用m()
,我应该得到以下二维数组:
[[0,0,0],[0,1,2],[0,2,4]]