箭头函数表达式是ES6新增的语法糖。它的语法比函数表达式更简洁,并且没有自己的this
,arguments
,super
或new.target
。
箭头函数表达式更适用于那些本来需要匿名函数的地方,并且它不能用作构造函数。
大家应该已经见识过箭头函数在处理数据时候的强大之处。
箭头函数在类似map()
,filter()
,reduce()
等需要其他函数作为参数来处理数据的高阶函数里会很好用。
阅读以下代码:
FBPosts.filter(function(post) {
return post.thumbnail !== null && post.shares > 100 && post.likes > 500;
})
我们写下了filter
函数,并尽量保证可读性。现在让我们用箭头函数来写同样的代码看看:
FBPosts.filter((post) => post.thumbnail !== null && post.shares > 100 && post.likes > 500)
这段代码完成了同样的任务,却变得更加简短易懂了。
现在有一道例题:使用箭头函数的语法来计算squaredIntegers
数组里正整数的平方。
const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34];
提示1:需要对realNumberArray使用 filter( )进行检查,以获取正整数(小数点不算整数)。
提示2:需要将filter( ) 函数中的值经过map( ) 平方操作后映射到变量squaredIntegers。
提示3:可以通过链式调用。
.............................................
.............................................
.............................................
以下是解答:
1 const realNumberArray = [4, 5.6, -9.8, 3.14, 42, 6, 8.34];
2 const squareList = (arr) => {
3 "use strict";
4 const squaredIntegers = arr.filter( (num) => num > 0 && num % parseInt(num) === 0 ).map( (num) => Math.pow(num, 2) );
5 return squaredIntegers;
6 };
7 const squaredIntegers = squareList(realNumberArray);
8 console.log(squaredIntegers);
输出结果:
部分内容参考自learn.freecodecamp.one