一篇带你学习unary 方法

[[405801]]

使用方便有用的方法,以减少代码行数,提高我们的工作效率,增加我们的摸鱼时间。

unary 方法

功能:创建一个最多接受一个参数的函数,忽略任何附加参数。

实现

 
 
 
 
  1. const unary = fn => val => fn(val); 

调用所提供的函数fn,只提供第一个参数。

示例

 
 
 
 
  1. ['6''8''10'].map(unary(parseInt)); // [6, 8, 10] 

解释一下

我们知道 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

 
 
 
 
  1. array.map(function(currentValue,index,arr), thisValue) 

map 回调函数有三个参数:

  • currentValue:必须,当前元素的值
  • index: 可选。当前元素的索引值
  • arr: 可选。当前元素属于的数组对象

在回到 我们的示例

unary(parseInt) 等价于 (val) => parseInt(val)。

 
 
 
 
  1. ['6''8''10'].map(unary(parseInt)) 等价于 ['6''8''10'].map((currentValue, index, arr) => parseInt(currentValue)) 

三次迭代的结果分别是:

  • parseInt('6')
  • parseInt('8')
  • parseInt('10')

所以最终得到结果是 [6, 8, 10]

 

THE END