为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标5832272 2023-03-10 15:46:09
我正在尝试使用 .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 很快..
查看完整描述

3 回答

?
慕容708150

TA贡献1831条经验 获得超4个赞

我正在尝试使用 .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);

    }));

}

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


很快..


查看完整回答
反对 回复 2023-03-10
?
倚天杖

TA贡献1828条经验 获得超3个赞

您可以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," ")))


查看完整回答
反对 回复 2023-03-10
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

这取决于你对它的外观有多挑剔。最短的解决方案是


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


查看完整回答
反对 回复 2023-03-10
  • 3 回答
  • 0 关注
  • 93 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信