猿问

如何使用 Array 方法 foreach() 或 map() 将数独板打印到控制台上?

我正在尝试使用 .foreach() 为数独创建一个打印函数。输入是例如


    var Sudoku =[[0,0,0,2,6,0,7,0,1], [6,8,0,0,7,0,0,9,0],[1,9,0,0,0,4,5,0,0],[8,2,0,1,0,0,0,4,0],[0,0,4,6,0,2,9,0,0],[0,5,0,0,0,3,0,2,8],

[0,0,9,3,0,0,0,7,4],[0,4,0,0,5,0,0,3,6],[7,0,3,0,1,8,0,0,0]];

并且预期的输出应该是


0 0 0 2 6 0 7 0 1

6 8 0 0 7 0 0 9 0

1 9 0 0 0 4 5 0 0

8 2 0 1 0 0 0 4 0

0 0 4 6 0 2 9 0 0

0 5 0 0 0 3 0 2 8

0 0 9 3 0 0 0 7 4

0 4 0 0 5 0 0 3 6

7 0 3 0 1 8 0 0 0

通常我们使用 for 循环,但是我们如何使用 foreach() 或任何其他数组方法来获得相同的结果呢?我尝试了以下代码


function print(array) {

 let count = 0

    array.forEach(nested => nested.forEach(Element => {

        let out = "";

        out += Element + " ";

        console.log(out);

    }));

}

但是输出一个一个地显示每个元素,例如


很快..


慕标5832272
浏览 111回答 3
3回答

慕容708150

我正在尝试使用 .foreach() 为数独创建一个打印函数。输入是例如    var Sudoku =[[0,0,0,2,6,0,7,0,1], [6,8,0,0,7,0,0,9,0],[1,9,0,0,0,4,5,0,0],[8,2,0,1,0,0,0,4,0],[0,0,4,6,0,2,9,0,0],[0,5,0,0,0,3,0,2,8],[0,0,9,3,0,0,0,7,4],[0,4,0,0,5,0,0,3,6],[7,0,3,0,1,8,0,0,0]];并且预期的输出应该是0 0 0 2 6 0 7 0 16 8 0 0 7 0 0 9 01 9 0 0 0 4 5 0 08 2 0 1 0 0 0 4 00 0 4 6 0 2 9 0 00 5 0 0 0 3 0 2 80 0 9 3 0 0 0 7 40 4 0 0 5 0 0 3 67 0 3 0 1 8 0 0 0通常我们使用 for 循环,但是我们如何使用 foreach() 或任何其他数组方法来获得相同的结果呢?我尝试了以下代码function print(array) { let count = 0    array.forEach(nested => nested.forEach(Element => {        let out = "";        out += Element + " ";        console.log(out);    }));}但是输出一个一个地显示每个元素,例如1 0 0 4 8 9 0 很快..

倚天杖

您可以console.log使用方法尝试每一行toString(并将逗号替换为空格):var Sudoku =[   [0,0,0,2,6,0,7,0,1],   [6,8,0,0,7,0,0,9,0],   [1,9,0,0,0,4,5,0,0],   [8,2,0,1,0,0,0,4,0],   [0,0,4,6,0,2,9,0,0],   [0,5,0,0,0,3,0,2,8],   [0,0,9,3,0,0,0,7,4],   [0,4,0,0,5,0,0,3,6],   [7,0,3,0,1,8,0,0,0]];Sudoku.forEach(row => console.log(row.toString().replace(/,/g," ")))

慕侠2389804

这取决于你对它的外观有多挑剔。最短的解决方案是console.table(Sudoku);但这给了你一张带标题的表格,所以可能并不完美。如果你可以使用reduce那么我建议:sudokutxt = Sudoku.reduce((acc, arr) => {acc.push(arr.join(' ')); return acc;}, []).join('\n');我的forEach解决方案是:let sudokutxt = '';Sudoku.forEach(arr => sudokutxt += arr.join(' ') + '\n')
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答