我在 Google Apps 脚本中编写了一个函数,用于获取 Gmail 中具有给定标签的所有电子邮件的日期和主题。但是,当我尝试将每个结果存储为对象时,我收到
SyntaxError: unexpected token ':'
错误。如果我创建一个列表来存储每对数据,那么就没有问题,但我希望每个数据都是一个键值对,以便可以通过标签访问数据。
这是该函数的简单版本,显示哪些有效,哪些无效:
function displayEmailParts() {
var labelName = 'foo';
var threads = GmailApp.getUserLabelByName(labelName).getThreads();
var initialMessages = threads.map((x) => x.getMessages()[0]);
// this works:
var messageParts = initialMessages.map(
(x) => [x.getSubject(), x.getDate()]
);
// this gives a syntax error:
var messageParts = initialMessages.map(
(x) => {subject: x.getSubject(), date: x.getDate()}
);
return messageParts
}
是否有任何原因导致将对象作为数组上的映射调用的输出无效?
你需要用 () 包裹起来,这样 js 就知道它是返回值,而不仅仅是函数块。例如
() => ({yourProp: val})