ecmascript 6 -如何从javascript的一行箭头函数返回匿名对象
ecmascript 6 - How to return anonymous object from one liner arrow function in javascript?
我最近切换到es6,并开始在我的代码中使用箭头函数。在重构时,我遇到了下面的代码
data.map(function(d) {
return {id: d.id, selected: bool};
});
我把上面的代码改成了-
data.map((d) => {id: d.id, selected: bool});
但是我从上面的代码得到错误。我不知道这是怎么回事?我知道,如果没有代码块,那么箭头函数提供了隐式返回。
但不知道如何返回空对象或匿名对象与一些属性初始化?
编辑:如果我这样做有什么错?只是出于好奇。
data.map((d) => new {id: d.id, selected: bool});
给对象初始化项加上父元素:
data.map((d) => ({id: d.id, selected: bool}) );
括号对其中的表达式的值没有影响,但是括号具有消除所包含表达式的第一个标记的歧义的语法效果。如果没有括号,JavaScript解析器必须决定{
标记是表示"这里开始一个函数体"还是"这里开始一个对象初始化器"。它总是选择前者(即,一个代码块)。
引入圆括号消除了混淆:前面的(
唯一可以表示的是"这里来了一个表达式",因此圆括号中的{
只能表示"这里来了一个对象初始化器"。(换句话说,你不能在表达式中间放一段代码;如果你尝试,那么你会得到一个语法错误。)
你好,我认为你需要添加括号来返回对象文字
//将主体括起来返回对象字面值表达式:参数=> ({foo: bar})
从https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Functions/Arrow_functions您也可以使用
data.map((d) => {
return {id: d.id, selected: bool}
} );
相关文章:
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 在追加一行并调用其中的时差函数时生成动态id
- JavaScript在一行中设置了命名函数的原型
- 怪异的JS行为:执行函数需要额外的一行
- 如果最后一行已经显示,如何防止jQuery加载更多停止函数
- 递归可防止函数在一行中被多次单击
- 什么'It’对一行代码使用匿名函数的意义何在
- 我正在编写一个 Javascript 函数,以便将表中的每一行着色为不同的颜色.为什么我的代码不起作用
- 如何在 Node.js 中为非常大 (> 1GB) 文件的每一行运行异步函数
- 如何让 javascript 保持,直到函数返回一个值,然后继续下一行
- 我如何创建一个函数,以便编程行将等到它完成并移动到 javascript 中的下一行
- jQuery回调函数在循环之前触发最后一行
- Javascript - 异步函数完成后下一行如何等待执行
- 如何向 Javascript 表添加一行,其中包含包含 jQuery 中的日期选择器函数的单元格
- 在一行中编写事件处理程序函数
- 可以't将两个函数的输出放在一行中
- GoogleSheets:如何使自定义函数的返回值溢出到一行中
- 试图创建一个可重复使用的函数来生成一行中的单元格.(棋盘)
- 在一行中使用多个函数进行Undercore
- module.exports,在一行中包含所有函数