使用JS循环形成一个倒ascii三角形艺术



如果没有嵌套循环,您如何能够形成这样的ascii艺术?

####
###
##
#

这是我目前拥有的:

function invertTriangle (row) {
  var asteric = "*" * row;
  for ( var y=row; y>=row; y--){
      asteric = asteric - "*";
      console.log(asteric);
  }
};
invertTriangle(10);
我将感谢你的帮助和解释!

谢谢!

尝试:

var string = "";
for (var i = 0, j = 4, k = 4; i < 10; i++) {
    string += "*";
    if (--j === 0) {
        j = --k;
        string += "n";
    }
}
alert(string);

希望对你有帮助。

这里有一种递归的方法。

基本上,在调用函数时,您希望在第一行打印的字符数。然后它构造一个包含这么多字符的字符串。然后,它减少所需的字符数,如果该数字大于0,则再次调用自身并将新结果添加到当前结果中。这一直持续到需要零字符的行。此时,函数不再调用自身,并将完整构造的字符串返回给原始调用者。

代码:

<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
function byId(e){return document.getElementById(e);}
window.addEventListener('load', onDocLoaded, false);
function onDocLoaded()
{
    byId('triTgt').innerText = makeTriString(40);
}
function makeTriString(nStars)
{
    var str = '';
    for (var i=0; i<nStars; i++)
        str += "*";
    str += "n";
    nStars--;
    if (nStars > 0)
        str += makeTriString(nStars);
    return str;
}
</script>
<style>
</style>
</head>
<body>
    <div id='triTgt'></div>
</body>
</html>

相关内容

  • 没有找到相关文章

最新更新