Спойлер: я публикую решение проблемы "Лестница" HackerRank. Итак, я пытаюсь решить задачу для начинающих, используя JS, чтобы напечатать лестницу. Мне нужно написать функцию, которая печатает лестницу в соответствии с количеством шагов, введенных в качестве параметра. Например:
stairs(4)
Должно возвращать
#
##
###
####
Я получил этот код, и хотя он в основном в порядке, в конце я получаю строку «undefined». Итак:
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])
}
}
При запуске staircase (6) он возвращает следующее:
#
##
###
####
#####
######
undefined
Меня беспокоит слово «undefined», которое не позволяет мне отправить сообщение. Я только догадывался, что возможное решение - заменить «<=» во втором объявлении l oop на просто «<», и это сделало это: </p>
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) , он возвращает то, что должен:
#
##
###
####
#####
######
Хотя проблема решена, я не понимаю, почему именно. У меня вопрос: почему слово «неопределенное» появляется в первом случае и почему сделанная мной замена исправляет его? Спасибо!