ES6数组映射的javascript语法错误哈希

ES6数组映射的javascript语法错误哈希,javascript,ecmascript-6,Javascript,Ecmascript 6,这是一个愚蠢的问题,但我只是停留在这里 前提 let groups = [ {id: 1, name: '123'}, {id: 2, name: '456'} ] 我想输出这个 [ {value: 1, label: '123'}, {value: 2, label: '456'} ] 我不明白为什么会出错 groupOptions = groups.map(item => {value: item.id, label: item.name} ) 将返回的对象包

这是一个愚蠢的问题,但我只是停留在这里

前提

let groups = [
  {id: 1, name: '123'},
  {id: 2, name: '456'}
]
我想输出这个

[
  {value: 1, label: '123'},
  {value: 2, label: '456'}
]
我不明白为什么会出错

groupOptions = groups.map(item =>
  {value: item.id, label: item.name}
)

将返回的对象包装到
()
中。在我们的
()
中,花括号将被视为箭头函数的主体,在主体内部,表达式无效

let组=[
{id:1,名称:'123'},
{id:2,名称:'456'}
]
var groupOptions=groups.map(项=>
({value:item.id,label:item.name})
);
console.log(groupOptions)
let组=[
{id:1,名称:'123'},
{id:2,名称:'456'}
]
var输出=groupOptions=groups.map(项=>
{返回{值:item.id,标签:item.name}
)

控制台日志(输出)
如果您对
映射
回调的
参数进行分解,则会更干净一些:

let groups = [
  {id: 1, name: '123'},
  {id: 2, name: '456'}
]
var output = groupOptions = groups.map(({id,name}) => 
    ({value:id, label:name})
);

// or you can do the mapping right in the arguments:

var output = groupOptions = ggroups.map(({id:value,name:label}) =>
    ({value, label})
);

你忘了在箭头后面的地图里加括号了。!谢谢你的解释。谢谢,但是似乎没有必要返回
吗?谢谢你的回答,但是我希望它更简单。