map中使用箭头函数遇到的坑
2024-09-06 16:09:20
箭头函数提供了更简洁和更短的语法,其中一个可用功能是可以将函数编写为具有隐式返回值的lambda表达式。这对于功能样式代码很方便,比如使用函数映射数组:
const numbers = [1,2,3,4];
numbers.map(n => n * n);
这个箭头函数将按照预期的方式工作,它将值自身相乘并返回到包含的新数组[1, 4, 9, 16]
但是,如果你尝试映射到对象,例如,假设将数字映射到包含如下值的对象数组:
const numbers = [1,2,3,4];
numbers.map(n => {value:n});
这里的结果实际上是一个包含未定义值的数组。虽然看起来我们在这里返回一个对象,但是解释器看到了完全不同的东西。如果我们将上面的箭头函数推断为解释器,实际上最终执行的内容像这样:
numbers.map(function(n){
value:
n
return;
});
解决方法就是将对象包装在括号中,将其转换为表达式而不是块语句
numbers.map(n =>({value:n}));
最新文章
- Python 基礎 - 字符串常用操作
- 使用xib需要记得的小问题
- Android studio关于真机调试DDMS中的data文件夹打不开的解决方法
- Python的16个“坑”
- iOS-音频格式转换-b
- 转:maven项目添加jar包.
- 在OC中调用Swift类中定义delegate出现:Property 'delegate' not found on object of type ...
- Model注解的后台原理
- ARM和x86的区别
- 跨语言学习的基本思路及python的基础学习
- FastDFS与Nginx的配置说明
- [leetcode]经典算法题- String to Integer (atoi)
- MT【256】2016四川高考解答压轴题
- HDU 6319 Problem A. Ascending Rating(单调队列)
- SNF快速开发平台3.0之-界面个性化配置+10种皮肤+7种菜单-Asp.net+MVC4.0+WebAPI+EasyUI+Knockout
- js的let语句在安卓手机端的QQ浏览器出错的问题
- Hibernate Validator bean-validator-3.0-JBoss-4.0.2
- 【微信小程序】转载:微信小程序之购物车功能
- .Net 程序员面试 C# 语言篇 (回答Scott Hanselman的问题)
- tensorflow conv2d的padding解释以及参数解释