Javascript 使用JS循环形成倒ascii三角形艺术
如果没有嵌套循环,您如何能够形成这样的ascii艺术Javascript 使用JS循环形成倒ascii三角形艺术,javascript,function,loops,ascii,Javascript,Function,Loops,Ascii,如果没有嵌套循环,您如何能够形成这样的ascii艺术 #### ### ## # 这就是我目前拥有的: function invertTriangle (row) { var asteric = "*" * row; for ( var y=row; y>=row; y--){ asteric = asteric - "*"; console.log(asteric); } }; invertTriangle(10); 我将感谢你的帮助和解释 谢谢
####
###
##
#
这就是我目前拥有的:
function invertTriangle (row) {
var asteric = "*" * row;
for ( var y=row; y>=row; y--){
asteric = asteric - "*";
console.log(asteric);
}
};
invertTriangle(10);
我将感谢你的帮助和解释
谢谢大家! 试试看:
var string=”“;
对于(变量i=0,j=4,k=4;i<10;i++){
字符串+=“*”;
如果(--j==0){
j=--k;
字符串+=“\n”;
}
}
警报(字符串)代码>这里有一种使用递归的方法
基本上,您可以使用希望打印在第一行的字符数调用函数。然后它构造一个包含这么多字符的字符串。然后,它减少所需的字符数,如果该数字大于0,则再次调用自身并将新结果添加到当前结果中。这将一直持续到需要零个字符的行。此时,函数不再调用自身,完全构造的字符串将返回给原始调用方
代码:
“严格使用”;
函数byId(e){returndocument.getElementById(e);}
window.addEventListener('load',onDocLoaded,false);
函数onDocLoaded()
{
byId('triTgt')。innerText=makeTriString(40);
}
函数makeTriString(nStars)
{
var-str='';
对于(变量i=0;i 0)
str+=makeTriString(nStars);
返回str;
}
使用递归。与创建递归函数来计算n的方法相同代码>(阶乘),你可以做一个来解决这个问题。我认为OP的意思是如何在一个循环中完成它。递归仍然可以嵌套。@AaditMShah-是的,递归确实可以嵌套-事实上,没有嵌套它就不会是递归,是吗?:惑儒:但是这个问题需要一个不涉及嵌套循环的解决方案。递归符合规定的要求。你能给我解释一下为什么使用j和k变量吗?我对JS运算符的逻辑以及JS函数的工作方式非常不熟悉。几天前才开始学习!
<!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>