如何让这个基本循环练习的第一部分正确?

Moh*_*hil 14 javascript

我正在从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"变量时,它没有来自变量声明的额外"#".


Toy*_*oyi 6

您的代码正在"从上到下"执行.

在你的'for循环'中,第一次迭代在已经声明的var hash中添加一个#并使其成为##,并由控制台"记录".

您需要做的就是在hash = hash +"#"之前放置console.log(hash).

console.log(hash);
hash = hash + "#";
Run Code Online (Sandbox Code Playgroud)

这将确保在第一次迭代中,首先"#"将被"记录",然后只有hash = hash +"#"将开始工作:)

  • 但我想补充一点,也许你应该尝试从一个空字符串开始,就像'count'应该从零开始,它可以节省很多这样的'事件':) (5认同)