2019-03-23
描述
创建一个最多接受 n
个参数的函数,他可以忽略任何多余的参数。
提示
参数 fn
为提供的函数, n
为函数最多接受的参数的个数,可使用 Array.prototype.slice(0, n)
和扩展运算符 ...
。
代码
const ary = (fn, n) => (...args) => fn(...args.slice(0, n));
示例
依次获取长度不同的数组中的前 2 位中较大的值:
const firstTwoMax = ary(Math.max, 2);
[[2, 6, 'a'], [8, 4, 16], [10]].map(x => firstTwoMax(...x)); // [6, 8, 10]