gpt4 book ai didi

javascript用字符串创建网格

转载 作者:行者123 更新时间:2023-11-30 05:39:01 26 4
gpt4 key购买 nike

我对所有这一切都是陌生的,并且通过 Eloquent JS 工作。我的目标是创建一个给定大小的棋盘/网格的字符串,其中的空格由交替的哈希和空格组成。不太明白

1.) 我的问题的正确解决方案

2.) 当我对代码进行某些更改时发生了什么

这似乎应该是正确答案,但由于逗号,控制台中的第一行未正确对齐:

function chessBoard (size) {
result = "";
for (var i = 1; i <= size; i++) {
for (var j = 1; j <= size; j++) {
if ((i + j) % 2 == 0 ) {
result = result + "#";
} else {
result = result + " ";
}

}

result = result + "\n"
}
console.log(result);
}

chessBoard(8);

"# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
"

如果我更改循环内的所有 3 个结果语句,使散列、空格和换行符位于 + 运算符的另一侧(result = "#"+ result),该函数会产生:

"
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #"

看起来是正确的,但真的是这样吗?为什么第一行以哈希开头?如果内部循环正在检查 (i + j) 是否为偶数——最后一个字符是 (1+8) 对吗?——然后使用

result = " " + result;

要将最后一个字符添加到字符串中,为什么该字符不在字符串的开头?

最后,如果我在内循环中对语句使用 result = result += order,但在外循环中使用 result = "\n"+ result,我得到这个:

"







# # # # # # # ## # # # # # # ## # # # # # # ## # # # # # # #"

这里发生了什么?非常感谢您的帮助。

最佳答案

我将尝试解释解决方案中的代码是如何工作的。

var size = 8;

var board = "";

for (var y = 0; y < size; y++) {
for (var x = 0; x < size; x++) {
if ((x + y) % 2 == 0)
board += "#";
else
board += " ";
}
board += "\n";
}

console.log(board);

所以这里有一个循环中的循环。第一个/外部循环控制换行符,内部循环控制是否打印 # 或 ' '(空格)(也称为添加到板变量)。

基本上,对我有帮助的是想象内部循环变得疯狂并添加空格和#而外循环仅每 8 次(或任何大小变量)真正“做”某事(换行符)。

因此内部循环运行并添加字符。同时,外循环只是增加了 y 的大小。每隔一段时间,它就会在板上添加一个新行。

我正在努力可视化 for 循环,以便更好地理解它们。

关于javascript用字符串创建网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21869391/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com