亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

8.14.4:求和網格代碼HS

8.14.4:求和網格代碼HS

慕無忌1623718 2023-09-14 17:55:29
問題是這樣的:(這是 JavaScript)寫一個函數叫函數 sumGrid(grid) 以網格作為參數,并用該位置的行索引和列索引之和填充網格中的每個位置。例如,這段代碼:var grid = new Grid(2, 3);println(sumGrid(grid));應該輸出:0   1   21   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 知道我應該做什么嗎?
查看完整描述

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)


查看完整回答
反對 回復 2023-09-14
?
蝴蝶不菲

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()


查看完整回答
反對 回復 2023-09-14
?
繁華開滿天機

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;

    }


查看完整回答
反對 回復 2023-09-14
?
MM們

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

   }

}

這可能不是解決問題的最佳方法,但它可以完成工作。


查看完整回答
反對 回復 2023-09-14
  • 4 回答
  • 0 關注
  • 171 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號