2016-12-29 96 views
0

从未见过此人之前:奇怪的语法错误

.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} 
       }); 
     }) 

是这种模糊性在这种情况下正常的,任何方式除了我刚才没有以上,以减轻?

+0

顺便说一句,你在你的代码中改变了两件事,你删除了'return'关键字。目前还不清楚这只是一个“错字”或者是你实际改变的一部分。无论哪种方式,这与问题完全无关。 –

+0

对不起,我不是故意删除那个返回语句,编辑,谢谢 –

回答

1

为什么你有一个单语句胖箭头函数curlies?

您不需要围绕函数体或大致的return语句使用大括号。但是,您需要在对象字面值的周围放置括号以防止将其解释为函数体。

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

我猜是因为我想把它放在多行?即使我把它放在多行上,我想它也可以工作,idk –

+0

你可能想解释你改变了什么,而不是问一个(而不是相关的)问题;) –

+0

@FelixKling呵呵? :)这是所有关于马克给出的答案,这是一个重复的问题 –