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
}
}
這可能不是解決問題的最佳方法,但它可以完成工作。
添加回答
舉報