Saya ingin menggunakan console.log () untuk mencatat pesan tanpa menambahkan baris baru setelah setiap panggilan ke console.log (). Apakah ini mungkin?
javascript
google-chrome
console
logging
MitchellSalad
sumber
sumber
console.clear()
dan, misalnyaconsole.log()
.Jawaban:
Tidak, itu tidak mungkin. Anda harus menyimpan string dan menggabungkan jika Anda ingin semuanya dalam satu baris, atau meletakkan output Anda di tempat lain (katakanlah, jendela lain).
sumber
question
tidakconsole.log
. Pertanyaannya juga tentang konsol browser, bukan Node.js.apply
.Di NodeJS Anda dapat menggunakan process.stdout.write dan Anda dapat menambahkan '\ n' jika Anda mau.
console.log(msg)
setara denganprocess.stdout.write(msg + '\n')
.sumber
Anda dapat memasukkan sebanyak mungkin barang
arguments
sesuka Anda:console.log('hi','these','words','will','be','separated','by','spaces',window,document)
Anda akan mendapatkan semua keluaran itu dalam satu baris dengan referensi objek sebaris dan Anda kemudian dapat menurunkan pemeriksa mereka dari sana.
sumber
Iya itu mungkin (lihat demo di bawah) - dengan menerapkan konsol virtual Anda sendiri di atas konsol browser asli, lalu menyinkronkannya ke yang asli.
Ini jauh lebih mudah daripada kedengarannya:
console.clear()
sebelum menulis untuk menghapus konten sebelumnyaconsole.log()
(atau peringatkan, kesalahan, dll) untuk mengisi konsol dengan konten dari buffer tampilan AndaSebenarnya, saya sudah melakukan ini selama beberapa waktu sekarang. Penerapan ide yang singkat dan belum sempurna akan menjadi sesuatu di sepanjang baris berikut, tetapi masih mampu menganimasikan konten konsol:
// ================================================= // Rudimentary implementation of a virtual console. // ================================================= var virtualConsole = { lines: [], currentLine: 0, log: function (msg, appendToCurrentLine) { if (!appendToCurrentLine) virtualConsole.currentLine++; if (appendToCurrentLine && virtualConsole.lines[virtualConsole.currentLine]) { virtualConsole.lines[virtualConsole.currentLine] += msg; } else { virtualConsole.lines[virtualConsole.currentLine] = msg; } console.clear(); virtualConsole.lines.forEach(function (line) { console.log(line); }); }, clear: function () { console.clear(); virtualConsole.currentLine = 0; } } // ================================================= // Little demo to demonstrate how it looks. // ================================================= // Write an initial console entry. virtualConsole.log("Loading"); // Append to last line a few times. var loadIndicatorInterval = setInterval(function () { virtualConsole.log(".", true); // <- Append. }, 500); // Write a new line. setTimeout(function () { clearInterval(loadIndicatorInterval); virtualConsole.log("Finished."); // <- New line. }, 8000);
Ini pasti memiliki kekurangan saat mencampurkan dengan interaksi konsol langsung, dan pasti bisa terlihat jelek - tetapi pasti memiliki kegunaan yang valid, yang tidak dapat Anda capai tanpanya.
sumber
Jawaban singkatnya tidak.
Tapi
Jika kasus penggunaan Anda melibatkan upaya untuk mencatat data yang terus berubah sambil menghindari pembengkakan konsol, maka salah satu cara untuk mencapai ini (di browser tertentu) adalah dengan menggunakan
console.clear()
sebelum setiap keluaran.function writeSingleLine (msg) { console.clear(); console.log(msg); } writeSingleLine('this'); setTimeout( function () { writeSingleLine('is'); }, 1000); setTimeout( function () { writeSingleLine('a'); }, 2000); setTimeout( function () { writeSingleLine('hack'); }, 3000);
Perhatikan bahwa ini mungkin akan merusak fungsionalitas pencatatan lainnya yang terjadi dalam aplikasi Anda.
Penafian: Saya akan mengklasifikasikan ini sebagai peretasan.
sumber
Jika satu-satunya tujuan Anda untuk berhenti mencetak pada banyak baris, Salah satu caranya adalah mengelompokkan nilai jika Anda tidak ingin mereka mengisi konsol lengkap Anda.
PS: - Sampai jumpa konsol browser untuk output
let arr = new Array(10).fill(0) console.groupCollapsed('index') arr.forEach((val,index) => { console.log(index) }) console.groupEnd()
console.group
console.groupCollapsed
sumber
Sesuatu tentang ide @shennan:
Tampilkan cuplikan kode
function init(poolSize) { var pool = []; console._log = console.log; console.log = function log() { pool.push(arguments); while (pool.length > poolSize) pool.shift(); draw(); } console.toLast = function toLast() { while (pool.length > poolSize) pool.shift(); var last = pool.pop() || []; for (var a = 0; a < arguments.length; a++) { last[last.length++] = arguments[a]; } pool.push(last); draw(); } function draw() { console.clear(); for(var i = 0; i < pool.length; i++) console._log.apply(console, pool[i]); } } function restore() { console.log = console._log; delete console._log; delete console.toLast; } init(3); console.log(1); console.log(2); console.log(3); console.log(4); // 1 will disappeared here console.toLast(5); // 5 will go to row with 4 restore();
sumber
kumpulkan output Anda dalam array dan kemudian gunakan fungsi gabung dengan pemisah pilihan
function echo(name, num){ var ar= []; for(var i =0;i<num;i++){ ar.push(name); } console.log(ar.join(', ')); } echo("apple",3)
periksa juga Array.prototype.join () untuk detail mode
var elements = ['Fire', 'Wind', 'Rain']; console.log(elements.join()); // expected output: Fire,Wind,Rain console.log(elements.join('')); // expected output: FireWindRain console.log(elements.join('-')); // expected output: Fire-Wind-Rain
sumber
Anda dapat menggunakan operator sebaran untuk menampilkan keluaran dalam satu baris. Fitur baru javascript ES6. lihat contoh di bawah ini
for(let i = 1; i<=10; i++){ let arrData = []; for(let j = 1; j<= 10; j++){ arrData.push(j+"X"+i+"="+(j*i)); } console.log(...arrData); }
Itu akan mencetak 1 hingga 10 tabel dalam satu baris.
sumber
jika Anda ingin, misalnya, elemen array log konsol tanpa baris baru, Anda dapat melakukannya seperti ini
const arr = [1,2,3,4,5]; Array.prototype.log = (sep='') => { let res = ''; for(let j=0; j<this.lengthl j++){ res += this[j]; res += sep; } console.log(res); } // console loging arr.log(sep=' '); // result is: 1 2 3 4 5
sumber
// Source code for printing 2d array window.onload = function () { var A = [[1, 2], [3, 4]]; Print(A); } function Print(A) { var rows = A.length; var cols = A[0].length; var line = ""; for (var r = 0; r < rows; r++) { line = ""; for (var c = 0; c < cols; c++) { line += A[r][c] + " "; } console.log(line); } }
sumber
A.forEach(row => console.log(row.join(' ')))