重新排列函数参数
创建一个函数,根据指定的索引重新排列其参数,并调用提供的函数。
- 使用
Array.prototype.map()
根据indexes
重新排序参数。 - 使用展开运算符(
...
)将转换后的参数传递给fn
。
const rearg = (fn, indexes) => (...args) => fn(...indexes.map(i => args[i]));
let rearged = rearg(
function(a, b, c) {
return [a, b, c];
},
[2, 0, 1]
);
rearged('b', 'c', 'a'); // ['a', 'b', 'c']