2019-04-01
描述
创建一个函数,调用他提供的函数就可让传入的数组根据提供的索引进行排序。
提示
- 使用
Array.prototype.map()
基于根据扩展运算符组合的indexes
对传入的参数进行重新排序,以便将最终结果展开作为参数传到fn
中。
代码
const rearg = (fn, indexes) => (...args) => fn(...indexes.map(i => args[i]));
示例
对传入的参数按指定的下标进行排序:
var rearged = rearg(
function(a, b, c) {
return [a, b, c];
},
[2, 0, 1]
);
rearged('b', 'c', 'a'); // ['a', 'b', 'c']