【发布时间】:2020-07-27 20:53:54
【问题描述】:
我正在使用应用程序脚本。我有一个对象数组“sendableRows”,我想将其转换为 json,在电子邮件正文的每一行之间添加一个空格(我想出了一个
标签,因为正文是 html)。一个对象看起来像:
{Phone Number=14444444444, , Index=4816.0, completed=, Lot Size=0.74, Power or water=, campaign=, absoluteRow=84.0 , ....}
我的代码:
const json = sendableRows.reduce(row => JSON.stringify(row), "")
Logger.log(json);
MailApp.sendEmail({
to: 'xxxx@gmail.com',
subject: todayString,
htmlBody: json
});
不幸的是,'json' 被输出为(抱歉,属性不完全匹配,因为我为对象和输出截断了不同的属性):
"\"{\\\"Index\\\":4877,\\\"Email\\\":\\\"ccccc@yahoo.com\\\",\\\"Phone Number\\\":\\\"1234567890\\\",Asking\\\":14651.13,\\\"New Asking\\\":\\\"\\\",\\\"Assessed\\\":28890,\\\"campaign\\\":\\\"\\\",\\\"completed\\\":\\\"\\\",\\\"last_contacted\\\":\\\"2020-07-27T16:20:31.898Z\\\",\\\"relativeRow\\\":64,\\\"absoluteRow\\\":67}<br>\"<br>"<br>
我做错了什么?
【问题讨论】:
-
您期望的输出类似于
['json_string_for_one_element' + '<br>' + 'json_string_for_one_element' + '<br>' + ...]? -
反正
sendableRows.reduce(row => JSON.stringify(row), "")的用法是错误的,因为reducer函数的第一个参数是Accumulator,不是当前元素,应该是sendableRows.reduce((pre, row) => pre +JSON.stringify(row), "")跨度> -
谢谢 - 我用过 var json = sendableRows.reduce((pre, row) => pre +JSON.stringify(row)+"
", "") - 仍然习惯了箭头符号,因为应用程序脚本现在支持它。
标签: javascript google-apps-script mapreduce