我正在尝试使用高阶函数来填充3x3 2d数组。具体来说,我需要使用array.map函数来完成此操作。到目前为止我的代码是:
function Matrix(m,n){
var mat = Array.apply(null, new Array(m)).map(
Array.prototype.valueOf,
new Array(n)
);
return mat;
}
restaurants = Matrix(3,3);
restaurants.map(
function(row,i){
return row.map(function(cell,j){
return new BorderedCell(ToString(ancestry[i][j]));
});
});
当我尝试展示餐馆时没有输出。似乎代码停留在
function(row,i){}
并且不会更进一步。
我该如何解决这个问题?任何帮助将不胜感激。
编辑:我正在尝试用对象BorderedCell填充一个2D数组。我的问题是我不知道如何使用双映射来遍历整个矩阵,我应该这样做。
答案 0 :(得分:0)
如果restaurants
的预期结果为[[0,1,2],[0,1,2],[0,1,2]]
,您可以使用Array.from()
,Array.prototype.keys()
function arr(len) {
return Array.from(Array(len).keys())
}
function Matrix(m, n) {
return arr(m).map(arr.bind(null, n));
}
var restaurants = Matrix(3, 3);
console.log(restaurants);