使用 Javascript 中的字符串构建网格
Building a grid using a string in Javascript
我一直在研究 JavaScript 教科书,并进行了一些初步练习。我目前正在自学。
一个练习要求使用“#”创建一个 8 X 8 的板。我做的很简单,并且能够制作出书本的样子,然后我查看了答案。我有几个关于逻辑的问题
let board2 = " # # # #\n# # # #";
for (let n = 0; n < 4; n++) {
console.log(board2);
}
这本书做了以下事情
let size = 8;
let board = "";
for (let y = 0; y < size; y++) {
for (let x = 0; x < size; x++) {
if ((x + y) % 2 == 0) {
board += " ";
} else {
board += "#";
}
}
board += "\n";
}
console.log(board);
我的理解是,如果 X 和 Y 坐标之和为偶数,则会在板上添加一个“ ”。你如何达到这个逻辑?是不是字符串中每隔一个位置就有一个space,然后奇数就包含一个“#”?
在 even-numbered 行中,您希望 space 在偶数列中,#
在奇数列中。添加偶数行和偶数列总是产生偶数和,因此当 x + y
为偶数时,偶数列将是偶数。
在 odd-numbered 行中,您想要相反的结果:space 在奇数列中,#
在偶数列中。添加奇数行和奇数列将产生偶数和,因此当 x + y
为偶数时奇数列将是。
所以从这个简单的数学我们可以看出,我们总是想在x + y
是偶数时添加一个space,否则添加#
,它会交替布局行。
当您可以 hard-code 网格大小时,您的方法很好。书中的方法更为通用——它适用于任何网格大小,并且不依赖于行数是否为偶数。
我一直在研究 JavaScript 教科书,并进行了一些初步练习。我目前正在自学。
一个练习要求使用“#”创建一个 8 X 8 的板。我做的很简单,并且能够制作出书本的样子,然后我查看了答案。我有几个关于逻辑的问题
let board2 = " # # # #\n# # # #";
for (let n = 0; n < 4; n++) {
console.log(board2);
}
这本书做了以下事情
let size = 8;
let board = "";
for (let y = 0; y < size; y++) {
for (let x = 0; x < size; x++) {
if ((x + y) % 2 == 0) {
board += " ";
} else {
board += "#";
}
}
board += "\n";
}
console.log(board);
我的理解是,如果 X 和 Y 坐标之和为偶数,则会在板上添加一个“ ”。你如何达到这个逻辑?是不是字符串中每隔一个位置就有一个space,然后奇数就包含一个“#”?
在 even-numbered 行中,您希望 space 在偶数列中,#
在奇数列中。添加偶数行和偶数列总是产生偶数和,因此当 x + y
为偶数时,偶数列将是偶数。
在 odd-numbered 行中,您想要相反的结果:space 在奇数列中,#
在偶数列中。添加奇数行和奇数列将产生偶数和,因此当 x + y
为偶数时奇数列将是。
所以从这个简单的数学我们可以看出,我们总是想在x + y
是偶数时添加一个space,否则添加#
,它会交替布局行。
当您可以 hard-code 网格大小时,您的方法很好。书中的方法更为通用——它适用于任何网格大小,并且不依赖于行数是否为偶数。