为什么
['a', 'b', 'c'].map((x) => { letter: x })
返回未定义的数组
和
['a', 'b', 'c'].map((x) => [{ letter: x }][0])
正确返回一个对象数组?
答案 0 :(得分:2)
您需要在()
var result = ['a', 'b', 'c'].map((x) => ({ letter: x }))
console.log(result)
答案 1 :(得分:2)
由于
您使用大括号block statement。
您letter
为label。
x
只是一个没有动作的值。
undefined
的返回值是function的标准返回值,没有任何带有值的return语句。
要返回默认值以外的值,函数必须具有
return
语句,该语句指定要返回的值。没有return语句的函数将返回默认值。如果使用constructor关键字调用new
,则默认值为其此参数的值。对于所有其他函数,默认返回值是未定义的。
正确调用映射对象。
console.log(['a', 'b', 'c'].map(x => ({ letter: x })));
答案 2 :(得分:1)
缺少显式return语句的函数将返回undefined。
() => {}
相当于function(){}
。
x => x
相当于function(x){ return x;}
因此没有{}
的箭头函数将返回表达式的计算值。