javascript - 在javascript中打印像console.log这样的对象(有很多信息)
问题描述
我需要发送一封包含console.log
JS 对象输出的电子邮件。这是一个代码示例:
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);
在我的控制台结果中是这样的:
是否有某种方法可以以纯文本形式获取此输出,或者我应该编写自定义解析函数?
解决方案
如果您使用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
实际上应该是一个对象,而不是一个数组,因为数组应该只有数字键。
推荐阅读
- reactjs - 为什么 react setState 在 useEffect 中不起作用?
- json - 有没有办法使用默认的“内置”(宏生成)并且只覆盖单个属性?
- java - 如何以正确的方式修剪java中的字符串并将其拆分为3个单独的文本视图
- c# - 异步等待行为同步
- spring-boot - 如何通过 https 注册 spring-boot 应用程序到 consul?
- linux-device-driver - 如何使用套接字从应用程序中读取 MCP2515 寄存器?
- aws-sdk - 浏览器中的 ECSCredentials
- python - 如何在python中重塑数组?
- django - 如何为 django 创建自定义管理面板
- amazon-web-services - 如何在 Cloudformation 中设置 EMR 步骤并发?