Javascripts中的高阶函数

时间:2016-10-02 03:25:40

标签: javascript

我正在尝试使用高阶函数来填充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数组。我的问题是我不知道如何使用双映射来遍历整个矩阵,我应该这样做。

1 个答案:

答案 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);