使用map将字符串数组转为JSON对象数组时返回undefined如何解决
问题原因
你写的箭头函数type => {name: type}中,开头的{}被JavaScript引擎识别为函数体的块级作用域标记,而非对象字面量的包裹符号。里面的name: type会被解析为带标签的普通语句,没有任何返回值,整个箭头函数没有显式声明返回内容,所以默认返回undefined,最终map生成的数组就全是undefined。
解决方法
有两种常用写法可以修复这个问题:
- 给对象字面量外层包裹小括号,明确告知引擎这是需要作为返回值的表达式,而非函数体块:
entityTypes.map(type => ({name: type})) - 显式在函数块中写return语句返回对象:
entityTypes.map(type => { return { name: type } })
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

