所以我的函数接受一个值和任意数量的回调 参数(我应该使用扩展运算符吗?)。该函数应返回通过所有给定回调传递值的最终结果。
let chainMap = function(num, cb1, cb2, cb3) {
if(cb2 && cb3 === undefined){
let res1 = cb1(num);
return res1;
} else if(cb3 === undefined){
let res2 = cb2(res1);
return res2;
} else {
let res3 = cb3(res2);
return res3;
}
};
let add5 = function(n) {
return n + 5;
};
let half = function(n) {
return n / 2;
};
let square = function(n) {
return n * n;
};
console.log(chainMap(25, add5)); // 30
console.log(chainMap(25, add5, half)); // 15
console.log(chainMap(25, add5, half, square)); // 225
console.log(chainMap(4, square, half)); // 8
console.log(chainMap(4, half, square)); // 4
我返回的“cb2(res1)”不是一个函数。如何将第一次回调的结果传递给下一次回调?