javascript - map 和箭头函数出现奇怪的语法错误

标签 javascript node.js ecmascript-6

以前从未见过这个:

.flatMap(obj => {
        return removeOneLine(this)
            .map(l => {l:l,id:obj.id});

我想映射结果,但是当然,我猜JS不知道这是一个对象还是函数体。

执行以下操作是避免语法错误的唯一方法(因为它对引擎来说不明确):

  .flatMap(obj => {
           return removeOneLine(this)
                .map(l => {
                    return {l: l, id: obj.id}
                });
        })

在这种情况下这种歧义是否正常,除了我上面所做的之外,还有什么方法可以缓解?

最佳答案

为什么要使用单语句粗箭头函数的花句?

您不需要在函数体周围使用花括号,也不需要显式的 return 语句。但是,您确实需要在对象文字两边加上括号,以防止其被解释为函数体。

.flatMap( obj=> removeOneLine(this).map(l => ({ l: l, id: obj.id })) )

关于javascript - map 和箭头函数出现奇怪的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41373942/

相关文章:

node.js - 在 Express 中处理 robots.txt 的最聪明方法是什么?

javascript - 如何使库在 Node 模块中可用

javascript - 在 ES6 中什么是新规范, "block-level function declaration"是什么意思?

javascript - 哪些浏览器支持 ECMAScript 6 的导入和导出语法?

javascript - Fabric.js 动态添加/删除元素

javascript - ReactJS中的通用按钮组件

javascript - 使用客户端路由进行 Node 身份验证

javascript - 添加商品到购物车

eclipse - Eclipse 控制台 View 中的 "Terminate"使 node.exe 保持运行

javascript - 如何使用 JavaScript 中的过滤器根据用户输入过滤整个数组?