ES6映射对象数组,以返回具有新键的对象数组[重复]
Posted
技术标签:
【中文标题】ES6映射对象数组,以返回具有新键的对象数组[重复]【英文标题】:ES6 map an array of objects, to return an array of objects with new keys [duplicate] 【发布时间】:2017-03-13 21:21:20 【问题描述】:我有一个对象数组:
[
id: 1,
name: 'bill'
,
id: 2,
name: 'ted'
]
寻找简单的单线返回:
[
value: 1,
text: 'bill'
,
value: 2,
text: 'ted'
]
所以我可以使用正确的键轻松地将它们泵入反应下拉列表。
我觉得这个简单的解决方案应该可以工作,但是我遇到了无效的语法错误:
this.props.people.map(person => value: person.id, text: person.name )
【问题讨论】:
你需要person => (...
。换句话说,将对象字面量括在括号中。否则 JS 认为它是一个块的开始。
【参考方案1】:
你只需要将对象包裹在()
中
var arr = [
id: 1,
name: 'bill'
,
id: 2,
name: 'ted'
]
var result = arr.map(person => ( value: person.id, text: person.name ));
console.log(result)
【讨论】:
谢谢!不知道我理解为什么括号是必要的,但它们确实有效。使用 JSX 时,如果我将标记保持在同一行,则不需要括号,所以我想我认为同一行上的对象也是如此。 啊,从帖子来看,这显然是重复的:“否则,花括号将被视为表示函数的主体。”现在这是有道理的。再次感谢。 这也可以,但它本质上只是编写代码的另一种方式,我添加了这个是因为 OP 不理解括号,我在自己解决问题时遇到了这个线程: var result = arr.map((person)=> return value:person.id, text:person.name ; ); 如果不想添加括号,则使用“=”代替“:”。 this.props.people.map(person => value= person.id, text= person.name ) @NitinAgarwal:你确定吗?你的建议对我不起作用。这是有道理的,它没有。我收到一条错误消息,提示未声明“值”和“文本”。以上是关于ES6映射对象数组,以返回具有新键的对象数组[重复]的主要内容,如果未能解决你的问题,请参考以下文章