首页 > 解决方案 > 8.14.4:求和网格 CodeHS

问题描述

这就是问题所在:(这是 JavaScript)

写一个函数叫

函数 sumGrid(grid) 将网格作为参数,并用该位置的行索引和列索引之和填充网格中的每个位置。

例如,这段代码:

var grid = new Grid(2, 3);
println(sumGrid(grid));

应该输出:

0   1   2
1   2   3

这是我到目前为止得到的...

function start(){
   var grid = new Grid(2, 3);
   println(sumGrid(grid));

}
function sumGrid(grid){
   for(var row = 0; row < grid.numRows(); row++){
      for(var col = 0; col < grid.numCols(); col++){
        var elem = (row);
        row += 1;
        print(elem + " ");
    }
        println("");
    col = 0
    for(var row = 0; row < grid.numRows(); row++){
        col += 1;
        var elem2 = (col);
        print(elem2 + " ");
        
      }
   }
}

当我运行代码时,它显示:

 0   1   2
 1   2  undefined 

知道我应该怎么做吗?

标签: javascript

解决方案


您看到的原因undefined是因为您正在调用printsumGrid函数,该函数不返回任何内容,因此undefined打印了为什么。

不知道为什么你有 3 个for循环,但你只需要 2 个。首先循环通过rowscols然后是简单的 printrow + col应该可以工作。

const Grid = function (x, y) {
  this.x = x
  this.y = y
  
  this.numRows = () => {
    return this.x
  }
  
  this.numCols = () => {
    return this.y
  }    
}

const sumGrid = (grid) => {
   for(let row = 0; row < grid.numRows(); row++){
      document.write("<p> ")
      for(let col = 0; col < grid.numCols(); col++){        
        document.write(row + col)
      }
      document.write(" </p>")
    }
}

const grid = new Grid(4, 5)
sumGrid(grid)


推荐阅读