[英]Node.js console.log - Is it possible to update a line rather than create a new line?
[英]How to create line breaks in console.log() in Node.js
打印多個對象時,有沒有辦法在console.log中獲取新行?
假設我們有console.log(a, b, c)
,其中a
、 b
和c
是對象。 有沒有辦法在對象之間換行?
我嘗試console.log(a, '\n', b, '\n', c)
,但這在 Node.js 中不起作用。
在它們之間添加\\n
(換行符):
console.log({ a: 1 }, '\\n', { b: 3 }, '\\n', { c: 3 })
我不知道為什么這在節點中有效,但以下似乎可以解決問題:
console.log('',a,'\n',b,'\n',c)
在新行的開頭不添加空格:-
console.log("one\\ntwo");
輸出:-
one
two
這將在新行的開頭添加空格:-
console.log("one","\\n","two");
輸出:-
one
two
您可以使用模板文字
console.log(`a is line 1
b is line 2
c is line 3`)
另一種方法是創建您自己的記錄器以及來自 JS 的原始記錄器。
var originalLogger = console.log; console.log = function() { for (var o of arguments) originalLogger(o); } console.log({ a: 1 }, { b: 3 }, { c: 3 })
如果您想避免與 JS 中的原始記錄器發生任何沖突
console.ownlog = function() { for (var o of arguments) console.log(o); } console.ownlog({ a: 1 }, { b: 3 }, { c: 3 })
另一種方法很簡單:
console.log(a);
console.log(b);
console.log(c);
您需要在console.log<\/code>中使用
\\n<\/code> ,如下所示:
console.log('one','\n','two');
只需執行
console.log({ a, b, c });<\/code>
例子:
var a = 'var a';
var b = 'var b';
var c = 'var c';
console.log({ a, b, c });
嘗試:
const a = {k1: 'key1', k2: 2};
const b = "string";
const c = 123;
console.log(`${JSON.stringify(a)}
${b}
${c}`);
使用一次調用可避免代碼重復 -> 無需多次調用
使用模板文字有效,但對格式敏感 - >沒有模板文字
我想瀏覽器會選擇自己的方式來分隔 arguments,並且無法指定分隔符。 這似乎是一個空間。 -> 不指定 '\n' 作為分隔符
在考慮了這些解決方案之后,我們得出了@Vasan 在評論中指出的內容—— console
具有強大的 printf 樣式格式化功能。
const s1 = "foo"; const s2 = "bar"; const a = { a: 1 }; const b = { b: 2 }; console.info("Remove space delimiter"); console.log("%s%s", s1, s2); console.info("Separate with newline"); console.log("%s\n%s", s1, s2); // Interactive object and label // See https://developer.mozilla.org/en-US/docs/Web/API/console/log#logging_objects console.info("Interactive object and label"); console.log( "%s\n%o", "`a` object", a, ); // Object snapshot and label // See https://developer.mozilla.org/en-US/docs/Web/API/console/log#logging_objects console.info("Object snapshot and label"); console.log( "%s\n%o", "`a` object is", JSON.parse(JSON.stringify(a)), ); console.info("Multiple objects *"); console.log("%o\n%o", a, b);
* 尷尬的是,在 Firefox 中,似乎不是第一個也不是最后一個替換參數的對象無論如何兩邊都有空格。 在 Chrome 中似乎並非如此。
控制台 output 甚至可以使用一些 CSS 屬性來設置樣式。
有關此示例,請參見https://gitlab.com/users/sign_in 。
請參閱https://developer.mozilla.org/en-US/docs/Web/API/console#styling_console_output
使用反引號,您可以簡單地添加變量和“\\n”
將記錄:
換行符:
console.log("\n");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.