Как правильно получить первую часть этого основного упражнения цикла?
Я изучаю Javascript из книги "Красноречивый Javascript" Марии Хавербеке, в конце второй главы (Структура программы) есть упражнение. Напишите цикл, который делает семь вызовов console.log для вывода следующего треугольника:
#
##
###
####
#####
######
#######
Я попытался решить его, используя цикл for.
var hash = "#";
for(counter = 0; counter < 8; counter ++)
{
hash = hash + "#";
console.log(hash);
}
Проблема заключается в том, что она не показывает первую строку требуемого вывода, как мне это получить?
Я был бы очень признателен за любое решение, особенно если оно содержит небольшое объяснение.
Ответы
Ответ 1
Ваш код выполняется "сверху вниз".
В вашем цикле "for" первая итерация добавляет # к уже объявленному хэш-символу var, и это делает его ##, и это будет "зарегистрировано" на консоли.
Все, что вам нужно сделать, это поставить console.log(hash) перед хешем = hash + "#" .
console.log(hash);
hash = hash + "#";
Это гарантирует, что в первой итерации, прежде всего, "#" будет "зарегистрирован", и только тогда hash = hash + "#" будет работать:)
Ответ 2
Хорошая работа, так как вы только начинаете.
Ты почти понял. Просто объявите переменную как пустую строку.
// this is the line that needs to be changed
var hash = '';
for(....) {
hash += "#";
console.log(hash);
}
Таким образом, когда вы добавляете переменную "hash" внутри цикла, у нее нет этого дополнительного "#" из объявления переменной.
Ответ 3
Вы сразу же присоединяете хэш к нему. Выйдите из начального значения перед циклом.
console.log(hash);
for ...
Ответ 4
Возможно, я опаздываю, но, делая это, вы теряете один символ (9-й).
выполните следующие действия:
hash = '';
и вам хорошо идти..:)
Ответ 5
var grid = "#"
for(i = 1; i < 8; i++){
console.log(grid.repeat(i));
}