В этом примере я пытаюсь напечатать одну звездочку в первой строке, две на второй и так далее:
var n = 5;
for (i = 0; i < n; i++) {
for (j = 0; j < i; j++) {
console.log('*');
}
console.log('\r\n');
}
Результат должен выглядеть следующим образом:
*
**
***
****
*****
Но в консоли Chrome я вижу следующее:
*
2 *
3 *
4 *
5 *
Почему это?
Это делает это, потому что именно так, как dev инструменты обрабатывают несколько вхождений одного и того же значения в целях ясности.
Вы можете использовать массив для достижения эффекта, которым вы пользуетесь. Также обратите внимание, что мы меняем j<i
на j<=
чтобы он выходил на 5-й.
Затем мы используем метод .join('')
чтобы сгладить массив в строку.
Кроме того, поскольку мы запускаем console.logging в каждом цикле итерации, новая строка будет добавляться автоматически, как и один журнал за цикл.
var n = 5;
for (i = 0; i < n; i++) {
var arr = [];
for (j = 0; j <= i; j++) {
arr.push('*');
}
console.log(arr.join(''));
}
Обратите внимание, что вам не понадобится массив, если вы печатаете его в DOM - он будет работать так, как вы изначально планировали.
Обновление: Ивар сделал отличное решение, а также использовать String.repeat()
которая требует только одного цикла.
var n = 5;
for (i = 1; i <= n; i++) {
var str = '*';
str = str.repeat(i);
console.log(str);
}
String.repeat()
. В этом случае вам нужен только один цикл.
console.log
не предназначен для точного управления рендерингом вывода. Это журнал записи, а не API-интерфейс терминала.
Он помещает каждое сообщение журнала в отдельную строку и сворачивает повторяющиеся, последовательные сообщения журнала в одно сообщение с подсчетом количества раз, когда оно произошло рядом с ним.
Потому что так оно и работает, в основном. Каждый вызов console.log
выводит новую запись в журнале. Каждая запись журнала находится в отдельной строке.
Если вы запишете одну и ту же строку несколько раз, они будут суммированы в одну запись со счетчиком спереди.
Не console.log
с помощью Console.Write
на С# или аналогичном. Это больше похоже на Console.WriteLine
.