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

标签 javascript

我一整天都在努力解决这个问题。这是编程类(class)的练习,但我似乎无法解决它。这是相当初学者,但我仍然感谢任何帮助。

http://repl.it/dfl/1

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

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

我有点迷失了,所以我创建了一个函数来查看如何在列上写入以及如何在行上写入。两个我好像都写不出来

我发现我的 for 循环不起作用,但我不知道为什么。我认为我做的一切都是对的。唯一有效的是 .map 迭代器,但它不执行行和列操作。

最佳答案

如果您想使用.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;
}

关于javascript - 如何使用 .map 和 for 循环编写列和行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29003527/

相关文章:

javascript - forEach 适用于 querySelectorAll,但不适用于 getElementsByTagName?

javascript - 在 Web 浏览器中,JavaScript 是否可以获取有关当前页面使用的 HTTPS 证书的信息?

javascript - 逻辑非运算符 (!) 将类添加到错误按钮的问题

javascript - 单击打开按钮后创建不必要的空间

javascript - Primefaces 以编程方式触发的事件触发两次

javascript - 计算 jQuery 中的正则表达式匹配

javascript - 如何在滚动框外制作向下滚动和向上滚动按钮?

javascript - 如果函数不存在写函数 - javascript

javascript - D3.js HTML数据表下拉过滤

javascript - 暂时禁用所有当前事件的 jQuery 事件处理程序