具有多个参数的多个回调函数

扎加诺
function one(x){
    return x+1;
}
function two(y){
    return y+2;
}
function three(z){
    return y+3;
}
function four(k){
    return k/4;
}

function start(...array){
    
    //passing all functions in order with each element of array and prints 
    //for example
    //prints (10+1+2+3)/4 
    //prints (11+1+2+3)/4 
    //prints (12+1+2+3)/4
    //
}

start(10,11,12);

在这个问题中我想到的第一个解决方案是使用休息参数和回调。这是最好的方法吗?传递n个时间参数和回调的rest参数可以按顺序调用函数。但是,我找不到在此类问题中使用回调函数的方法。

有没有办法使用回调函数?

尼娜·舒尔茨

您可以采用数组中的所有函数并减少值。

该函数将所有参数收集到一个数组中。

这个值数组是通过对所有想要的函数使用 reduce 方法映射的,每个值都作为减少的起始值。

最后收集的值打印到控制台。

function one(x) { return x + 1; }
function two(y) { return y + 2; }
function three(z) { return z + 3; }
function four(k) { return k / 4; }

function start(...array) {
    array
        .map(x => [one, two, three, four].reduce((x, fn) => fn(x), x))
        .forEach(x => console.log(x));
}

start(10, 11, 12);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章