为什么在映射调用中创建对象数组会导致冒号语法错误?

问题描述 投票:0回答:1

我在 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
}

是否有任何原因导致将对象作为数组上的映射调用的输出无效?

javascript dictionary object google-apps-script syntax
1个回答
0
投票

你需要用 () 包裹起来,这样 js 就知道它是返回值,而不仅仅是函数块。例如

() => ({yourProp: val})

© www.soinside.com 2019 - 2024. All rights reserved.