Map+Arrow函数的简写 - Part 2 of 函数式编程
-
上一章节,我们学习了高阶函数,其中
map
就是一个高阶函数,一个非常常用非常实用的高阶函数。
让我们重温一下这个函数的用法:function double (x) { return x*2; } const arr = [1,2,3]; //map - return array const newArr1 = arr.map(double); console.log(newArr1); //[2,4,6]
以上写法直观,但是有点"土",特别在这个ES6普遍流行的日子里。以上的函数可以通过Arrow函数,简化为:
const newArr1 = arr.map(x=>x*2);
什么玩意?是的,对于初学者来说,这个写法有点懵。下面我来解释一下:
function double(x){ return x*2; } //用arrow函数表示: const double = (x) => { return x*2; } //因为只有一个参数,所以括号可以省略: const double = x => { return x*2; } //又因为,函数返回值可以用一个return搞定,所以花括号又可以省略 const double = x=> x*2; // 注意:在高级函数里,函数可以当做一个值,所以我们可以吧double直接传给map函数 const newArr1 = arr.map(x=>x*2);
现在应该清楚了吧?重复一下重点
- 如果arrow函数只有一个参数,那么括号可以省略
- 如果arrow函数返回值可以用一个return搞定,那么花括号又可以省略