剧透警告:我正在发布HackerRank的“楼梯”问题的解决方案。所以,我试图解决初学者的挑战,用JS打印梯子。我必须编写一个函数,该函数根据作为参数输入的步骤数打印梯子。例如:
stairs(4)
应该返回
#
##
###
####
我得到了这个代码,虽然它基本上没问题,但我最终得到了一个“未定义”的行。所以:
function staircase(n) {
var stair=[]; /*array of strings */
for (var i=1; i <=n; i++){
var step= " ".repeat(n-i).concat("#".repeat(i));
stair.push(step);
}
for (var i=0; i<=stair.length; i++){
console.log(stair[i])
}
}
当楼梯 (6) 运行时, 它返回以下内容:
#
##
###
####
#####
######
undefined
困扰我的是“未定义”这个词,它阻止我提交slution。我只猜测一个可能的解决方案是替换第二个for循环声明中的“<=”,简单地表示“<”,这就做到了:
function staircase(n) {
var stair=[]; /*array of strings */
for (var i=1; i <=n; i++){
var step= " ".repeat(n-i).concat("#".repeat(i));
stair.push(step);
}
for (var i=0; i<stair.length; i++){
console.log(stair[i])
}
}
当我运行楼梯(6)时,它会返回它应该返回的内容:
#
##
###
####
#####
######
虽然问题解决了,但我不明白为什么。我的问题是:为什么“未定义”一词出现在第一种情况下,为什么我所做的替换修复了它?感谢!
弑天下
慕容708150
慕标5832272
慕妹3146593
相关分类