gpt4 book ai didi

Javascript 棋盘打印

转载 作者:数据小太阳 更新时间:2023-10-29 04:25:36 24 4
gpt4 key购买 nike

我正在学习如何使用 Javascript 编写代码,我正在尝试解决的练习之一是如何将棋盘打印到控制台以使其看起来像这样:

# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #
# # # #

我能够使用两个 for 循环来完成此操作,但我想只使用一个 for 循环来完成此操作以提高效率。这是我目前所拥有的:

var x = "#";

for(var i = 1; i < 65; i++) {


if((i%9 == 0)) {
x = "\n" + x.charAt(i-1);
}

else if (x.charAt(i-1) == "#") {
x = x + " "
}

else {
x = x + "#";
}
}

console.log(x);

这只发布了一个“#”,我不确定为什么。感谢您的帮助!

最佳答案

哦哦,代码高尔夫!

var x = new Array(33).join('#').split('').map(function(e,i) {
return (i % 4 == 0 ? (i === 0 ? '' : '\n') + (i % 8 ? ' ' : '') : ' ') + e;
}).join('');

document.body.innerHTML = '<pre>' + x + '</pre>'; // for code snippet stuff !

要修复您的原始功能,您必须实际添加到字符串中,并且通过使用 '\n' + x.charAt(i-1); 您会得到一个换行符和一个单个字符,正如 charAt 所做的那样,它在该索引处获取单个字符,因此您的字符串永远不会超过一个 #

var x = "#";

for (var i = 1; i < 65; i++) {
if (i % 9 == 0) {
x += "\n";
} else if (x[x.length-1] == "#") {
x += " "
} else {
x += "#";
}
}

这解决了这个问题,但它仍然没有交错模式,你需要额外的逻辑

关于Javascript 棋盘打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26838639/

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