我正在从Marijn Haverbeke的Eloquent Javascript一书中学习Javascript,第二章(程序结构)结束时有练习.编写一个循环,对console.log进行七次调用,输出以下三角形:
#
##
###
####
#####
######
#######
Run Code Online (Sandbox Code Playgroud)
我尝试像使用for循环一样解决它.
var hash = "#";
for(counter = 0; counter < 8; counter ++)
{
hash = hash + "#";
console.log(hash);
}
Run Code Online (Sandbox Code Playgroud)
问题是它显示没有显示所需输出的第一行,我该如何获得?
我非常感谢任何解决方案,特别是如果它有一点解释.
gim*_*893 12
你刚刚开始工作很好.
你几乎得到了它.只需将变量声明为空字符串即可.
// this is the line that needs to be changed
var hash = '';
for(....) {
hash += "#";
console.log(hash);
}
Run Code Online (Sandbox Code Playgroud)
这样,当您添加到循环内的"hash"变量时,它没有来自变量声明的额外"#".
您的代码正在"从上到下"执行.
在你的'for循环'中,第一次迭代在已经声明的var hash中添加一个#并使其成为##,并由控制台"记录".
您需要做的就是在hash = hash +"#"之前放置console.log(hash).
console.log(hash);
hash = hash + "#";
Run Code Online (Sandbox Code Playgroud)
这将确保在第一次迭代中,首先"#"将被"记录",然后只有hash = hash +"#"将开始工作:)