4 回答
TA贡献1836条经验 获得超5个赞
您看到的原因undefined是因为您正在print调用该sumGrid函数,该函数不会返回任何内容,因此undefined会打印出“为什么”。
不知道为什么你有 3 个for循环,但你只需要 2 个。首先循环rows,然后循环cols,然后简单打印row + 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)
TA贡献1810条经验 获得超4个赞
我相信在我查阅了Grid 文档并使用源代码进行练习后,这应该可以工作。我也在REPL上有它
function start(){
var grid = new Grid(2, 3);
println(sumGrid(grid));
}
function sumGrid(grid){
grid.grid.forEach(a=>a.fill(1)) //if some strange error happens, change this line to: grid.forEach(a=>a.fill(1))
var ans=[]
var x=grid.toList()
x.forEach(a=>ans.push(a[0]+a[1]))
return ans
}
start()
TA贡献1816条经验 获得超4个赞
这对我来说有点小问题,但我得到了这个更简单的答案。
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 = col + row;
grid.set(row, col, elem);
}
}
return grid;
}
TA贡献1886条经验 获得超2个赞
我让它工作了!这就是我为获得正确输出所做的事情:
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 + " ");
elem2 += 1
}
return elem2
}
}
这可能不是解决问题的最佳方法,但它可以完成工作。
添加回答
举报