5

我正在尝试编写一个 JavaScript 函数,通过 console.log 将字符串打印到控制台。但是,字符串中有回车符,它显示为文字 ↵ 字符,而不是创建一个新行。这是 console.log 的限制,还是有办法解决这个问题?

谢谢!

编辑:我实际上是想在一个对象中打印这个函数。就像是:

function blah() {
};
console.log({ "function" : blah });

我最初并没有想到要提及它,但是在尝试了 crowjonah 的解决方案之后,我意识到 console.log 显然将直接传递的字符串与在另一个对象内部传递的字符串区别对待。

4

4 回答 4

6
于 2013-02-21T21:08:24.677 回答
1

这是控制台的限制。但您可以创建一个解决方法:

function multiLineLog(msg) {
    msg = msg.split(/[\r\n]+/g);
    for (var a=0; a < msg.length; a++) console.log(msg[a]);
}
于 2012-11-27T17:26:39.043 回答
1

在日志消息中使用\n任何您希望有换行符的地方。

console.log('first line \nsecond line');

如果“回车”是 html 元素,例如<br>,您可以在字符串上运行替换以自动执行此操作

var newLogMessage = multiLineLogMessage.replace('<br>', '\n');
console.log(newLogMessage);
于 2012-11-27T17:26:47.757 回答
0

这是SReject 解决方案的修改版本:

const log = line => console.log(line);
const multiLineLog = msg => msg.split(/[\r\n]+/g).forEach(log);

const data = { a: { b: { c: null } } };

multiLineLog(JSON.stringify(data, null, 2));
.as-console-wrapper { top: 0; max-height: 100% !important; }

于 2021-07-09T18:08:27.493 回答