繁体   English   中英

数组映射返回未定义的数组时应返回对象数组

[英]Array map returning array of undefined when should return array of objects

为什么

['a', 'b', 'c'].map((x) => { letter: x })返回一个undefined数组

['a', 'b', 'c'].map((x) => [{ letter: x }][0])正确返回一个对象数组?

你需要在()包装对象

 var result = ['a', 'b', 'c'].map((x) => ({ letter: x })) console.log(result) 

因为

  • 您使用大括号作为块语句

  • 你有letter作为标签

  • x只是没有某些动作的值。

  • undefined的返回值是函数的标准返回值,没有任何带语句的return语句。

    要返回默认值以外的值,函数必须具有指定要返回的值的return语句。 没有return语句的函数将返回默认值。 对于使用new关键字调用的构造函数 ,默认值是其this参数的值。 对于所有其他函数,默认返回值未定义。

正确调用映射对象。

 console.log(['a', 'b', 'c'].map(x => ({ letter: x }))); 

缺少显式return语句的函数将返回undefined。 () => {}等同于function(){} x => x相当于function(x){ return x;}

因此,没有{}箭头函数将返回表达式的计算值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM