如何获得此基本循环练习的第一部分是否正确?
我在书中学习Javascript,由Marijn Haverbeke提供,第二章(程序结构)的末尾有练习。写一个循环,使console.log七个调用输出以下三角形:如何获得此基本循环练习的第一部分是否正确?
#
##
###
####
#####
######
#######
我试图解决它像使用for循环。
var hash = "#";
for(counter = 0; counter < 8; counter ++)
{
hash = hash + "#";
console.log(hash);
}
的问题是它的显示不显示所需的输出的第一行,我怎么得到的?
我会非常感谢任何解决方案,尤其是如果它带有一点解释。
您的代码正在“顶部到底部”执行。
在你的'for循环'中,第一次迭代将#添加到已经声明的var哈希中,并使得它##,并且这被控制台'记录'。
您只需将console.log(hash)放在hash = hash +“#”之前就可以了。
console.log(hash);
hash = hash + "#";
这将确保在第一次迭代,首先一个“#”会“记录”,然后才哈希散列= +“#”就会开始工作:)
但是我想补充一点,也许你应该尝试从一个空字符串开始,就像'count'应该从零开始,它可以节省很多这样的'事件':) –
你立即连接一个散列到它。在循环之前注销初始值。
console.log(hash);
for ...
不错的工作,因为你刚刚开始。
你几乎明白了。只需将变量声明为空字符串即可。
// this is the line that needs to be changed
var hash = '';
for(....) {
hash += "#";
console.log(hash);
}
为您添加到循环内的“哈希”变量通过这种方式,它并没有从变量声明额外的“#”。
我可能会迟到,但通过这样做,你正在浪费一个角色(第9个角色)。
初始化这样
hash = '';
,你是好去.. :)
var grid = "#"
for(i = 1; i < 8; i++){
console.log(grid.repeat(i));
}
这是那几个小白的问题,我很愿意,理由是你问纯粹给予好评一个它正确。它清楚地显示了问题,问题,尝试以及实际产出与预期的关系。请不要冷静地问好问题 - 如果需要的话关闭,但不要低估。 –
欢迎来到JS船员。绝对接受gimbel0893的回答。将变量声明为空字符串是要走的路。 – Trasiva
干得好,@Mohil,欢迎来到*!一个小建议:通常情况下,你希望循环变量是本地的,所以'for(var counter ...'会更好。 – georg