首页 > 解决方案 > 为什么我的对象用等号而不是分号/对象文字表示法记录?

问题描述

我很难弄清楚如何让我的构造函数以对象文字表示法创建我的草稿电子邮件 ID/主题数组。

具体来说,我创建了我的构造函数,它将每个电子邮件草稿的主题和 ID 作为对象放入数组中:

function draft(id, subject) {
  this.emailId = id;
  this.emailSubject = subject;
}

然后,当我使用此构造函数将一些电子邮件放入数组时(下面的代码使用我手动设置的数据作为测试)......

function seeDraftMessages() {
  var testArray = [];
  testArray.push(new draft(12412, 'test subject 1'));
  testArray.push(new draft(75162, 'test subject 2'));
  var testArrayDetails = [];
  testArray.forEach(function(msg) {
    Logger.log(msg);
  });
};

我得到这个作为日志中的输出:

[19-05-22 14:35:06:863 CDT] {emailId=12412.0, emailSubject=test subject 1}
[19-05-22 14:35:06:864 CDT] {emailId=75162.0, emailSubject=test subject 2}

问题是这些对象不是对象文字符号,所以我很难在我的 HTML 界面中使用它们。我需要它们像这样格式化,而不是:

[19-05-22 14:35:06:863 CDT] {emailId: '12412', emailSubject: 'test subject 1'}
[19-05-22 14:35:06:864 CDT] {emailId: '75162', emailSubject: 'test subject 2'}

任何帮助将不胜感激!

戴维斯

标签: google-apps-scriptgoogle-apps-script-editor

解决方案


Logger.log 将它们转换=为用于显示目的。底层数据仍然是一个有效的 JavaScript 对象。

尝试

Logger.log(JSON.stringify(msg));

推荐阅读