使用方便有用的方法,以减少代码行数,提高我们的工作效率,增加我们的摸鱼时间。
unary 方法
功能:创建一个最多接受一个参数的函数,忽略任何附加参数。
实现
- const unary = fn => val => fn(val);
调用所提供的函数fn,只提供第一个参数。
示例
- ['6', '8', '10'].map(unary(parseInt)); // [6, 8, 10]
解释一下
我们知道 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。
- array.map(function(currentValue,index,arr), thisValue)
map 回调函数有三个参数:
- currentValue:必须,当前元素的值
- index: 可选。当前元素的索引值
- arr: 可选。当前元素属于的数组对象
在回到 我们的示例
unary(parseInt) 等价于 (val) => parseInt(val)。
- ['6', '8', '10'].map(unary(parseInt)) 等价于 ['6', '8', '10'].map((currentValue, index, arr) => parseInt(currentValue))
三次迭代的结果分别是:
- parseInt('6')
- parseInt('8')
- parseInt('10')
所以最终得到结果是 [6, 8, 10]