如何使用.map和for循环编写列和行

时间:2015-03-12 06:53:20

标签: javascript

我一整天都试图解决这个问题。这是编程课程的练习,但我似乎无法解决它。这是一个非常初学者,但我仍然会感激任何帮助。

http://repl.it/dfl/1

基本上练习是这样的: 创建一个名为clearBoard()的函数 此函数将遍历棋盘格中的每个单元格,并将该单元格的值设置为null。

我们一直在使用for循环和.map,因此基本上我们应该使用这些工具来解决这个问题。

我有点迷茫,所以我创建了一个函数来查看如何在列上写入以及如何在行上写入。我似乎无法写两篇文章。

我看到我的for循环不起作用,我不知道为什么。我想我做的一切都是对的。唯一有效的是.map迭代器,但它没有行和列。

1 个答案:

答案 0 :(得分:1)

如果您想使用.forEach.map

var clearBoard = function (checkerboard) {
    checkerboard.forEach(function (row) {
        row.map(function () {
            return null;
        })
    })
    return checkerBoard;
}

但这可能比:

var clearBoard2 = function (board) {
    // you can use use i < 8 and j < 8, since checkerboards
    // are always 64 squares
    for (var i = 0; i < board.length; i++) {
        for (var j = 0; j < board[i].length; j++) {
            board[i][j] = null;
        }
    }
    // you could also do
    /*
        for (var i = 0; i < 64; i++) {
            checkerboard[Math.floor(i/8)][i % 8] = null;
        }
    */
    // since it's the same thing
    return board;
}

这是另一种方法:

var clearBoard3 = function () {
    var board = [];
    for (var i = 0; i < 8; i++) {
        board[i] = Array.apply(null, new Array(8));
    }
    return board;
}