我必须打印一个由'#'。
组成的三角形这是我的代码:
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);
对于这个输入,我得到:
#
###
######
##########
但我想得到:
#
##
###
####
我的代码有什么问题?感谢
答案 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>