繁体   English   中英

如何使用 JavaScript 循环打印“*”模式打印?

[英]How to print '*' pattern printing using JavaScript loop?

我正在学习 Javascript 中的循环。

我需要这样的输出:

*
**
***
****
*****

但是,当我使用此代码时:

 for (i = 1; i <= 5; i = i + 1) { for (j = 0; j < i; j = j + 1) { console.log('*'); } console.log(""); }

我得到这样的输出:

*

*
*

*
*
*

*
*
*
*

*
*
*
*
*

我该如何解决这个问题?

在 JS 中,每个console.log()都打印在新行上。 所以你必须保留一个你不断添加的字符串。 然后打印它:

 for (i = 1; i <= 5; i = i + 1) { let str = ""; for (j = 0; j < i; j = j + 1) { str += "*"; } console.log(str); }

您不需要第二个循环。 您可以通过使用 1 循环和重复方法来实现结果。

for(i=1;i<=5;i=i+1){
    console.log('*'.repeat(i));
}

根据@trincot 编辑。 谢谢。

使用 String.prototype.repeat() 的单循环解决方案

在 JavaScript 中, console.log()新行上打印输出,因此您需要连接字符串中的所有星星并打印它。

 const printPattern = (count, symbol) => { for (let i = 1; i <= count; i++) { console.log(symbol.repeat(i)); } }; printPattern(5, '*');

另一种方法是使用[...Array(n).keys()]获取范围 0-4,然后将此范围映射到不同长度的星形字符串,然后您可以使用换行符连接。

console.log([...Array(5).keys()].map(i => "*".repeat(i + 1)).join("\n"))

 for (i = 1; i <= 5; i = i + 1) { let str = ""; for (j = 1; j <= i; j = j + 1) { str += j; } console.log(str); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM