Saya ingin menggunakan console.log () untuk mencatat pesan tanpa menambahkan baris baru setelah setiap panggilan ke console.log (). Apakah ini mungkin?
console.clear()
dan, misalnya console.log()
.
Saya ingin menggunakan console.log () untuk mencatat pesan tanpa menambahkan baris baru setelah setiap panggilan ke console.log (). Apakah ini mungkin?
console.clear()
dan, misalnya console.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).
question
tidak console.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 dengan process.stdout.write(msg + '\n')
.
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.
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.
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.
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()
Sesuatu tentang ide @shennan:
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
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.
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
// 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);
}
}
A.forEach(row => console.log(row.join(' ')))