Javascript打印三角形没有按预期工作

时间:2016-07-25 07:14:53

标签: javascript

我必须打印一个由'#'。

组成的三角形

这是我的代码:

function show(n){
  var text ="";
for(var i=1;i<=n;i++){
    for(var j=1;j<=i;j++){
        text+='#';

      }
     console.log(text);
    }

}
show(4);

对于这个输入,我得到:

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

但我想得到:

#
##
###
####

我的代码有什么问题?感谢

3 个答案:

答案 0 :(得分:4)

尝试清除外部for循环中的text

for(var i=1;i<=n;i++){
    text = "";

完整代码将是,

function show(n){
 var text;
 for(var i=1;i<=n;i++){
    text = "";
    for(var j=1;j<=i;j++){
        text+='#';
    }
    console.log(text);
 }
}
show(4);

答案 1 :(得分:2)

你不需要两个循环。只需在每次迭代中附加一个字符并将其打印出来:

var text = "";

for(var i=0; i < n; i++){ 
 text += "#";
 console.log(text); 
}

//prints for n=8: 

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

答案 2 :(得分:0)

你可以这样循环:

<div id="result"></div>
<script>
function show(n){
    var text = "";
    for(var i=1;i<=n;i++){
        for(var j=1;j<=i;j++){
          text+='#';
        }
        text+="<br/>";
        document.getElementById('result').innerHTML = text;
    }
}
show(4);
</script>

Your Output