首页 > 解决方案 > 在javascript中打印像console.log这样的对象(有很多信息)

问题描述

我需要发送一封包含console.logJS 对象输出的电子邮件。这是一个代码示例:

let array_multi = [];
array_multi["07:00"] = ["one","two","three"];
array_multi["08:00"] = ["foo","bar","foo"];
array_multi["09:00"] = ["lorem"];
console.log(array_multi);

在我的控制台结果中是这样的:

在此处输入图像描述

是否有某种方法可以以纯文本形式获取此输出,或者我应该编写自定义解析函数?

标签: javascriptnode.jsgoogle-chrome

解决方案


如果您使用JSON.stringify,您将获得完整的数据,但也有一些缺点:

  • 数组字符串属性、函数和其他数据结构被完全忽略(因此无法按原样序列化您的数据¹)
  • 循环引用无法序列化
  • 没有办法从中看到继承

在你的情况下,你可以这样做:

let array_multi = {};
array_multi["07:00"] = ["one","two","three"];
array_multi["08:00"] = ["foo","bar","foo"];
array_multi["09:00"] = ["lorem"];

// logs as object
console.log(array_multi);
console.log(typeof array_multi);

// parse and convert to string
console.log(JSON.stringify(array_multi)); 
console.log(typeof JSON.stringify(array_multi));


在 Node.js 中,您有另一个选项,即util.format,它将返回与您可以在 Node.js 控制台中看到的字符串相同的内容。虽然它确实让您深入了解不同的数据类型和关系,但它无法向您展示交互式控制台能够展示的同一棵无限树,因此它只会向您展示全局的一小部分。


¹:您array_multi实际上应该是一个对象,而不是一个数组,因为数组应该只有数字键。


推荐阅读