You need to enable JavaScript to run this app. JavaScript用哈希字符#打印正方形输出不符合预期如何解决
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript用哈希字符#打印正方形输出不符合预期如何解决

问题出在哪

你原来的代码有两个明显的问题:

  • 内层循环里每打一个#就直接调console.log("#"),而console.log输出完内容会自动加换行,所以每个#都单独占一行,根本凑不到同一行上。
  • 内层循环跑完之后你又调了console.log(" "),不仅多打了个空格,还额外换了一次行,所以行与行之间会多出空行。
  • 循环变量i和j没加let声明,直接就变成全局变量了,虽然这次跑不影响,但属于很容易埋坑的写法。
正确的写法

要让同一行的#凑在一起,得先把一行的#都拼到一个字符串里,等整行拼完了再一次性输出就行:

function square(num){
    for(let i = 0; i < num; i++){
        let line = "";
        for(let j = 0; j < num; j++){
            line += "#";
        }
        console.log(line);
    }
}
square(2);

如果想写得更短,JS原生的repeat方法可以直接生成指定长度的重复字符串,连内层循环都不用写:

function square(num){
    for(let i = 0; i < num; i++){
        console.log("#".repeat(num));
    }
}
square(2);

两种写法跑出来的效果都一样,调用square(2)就会输出两行连续的##,完全是你要的正方形效果。

内容的提问来源于stack exchange,提问作者Christopher Maphakane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.11.01 17:45:03