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

时间:2020-08-01 07:42:02

标签: javascript callback

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);

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

是否可以使用回调函数?

3 个答案:

答案 0 :(得分:0)

我认为您正在寻找这样的解决方案:

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){
    for (var item of array) {
      //           10      10+1        10+2         10+3         10/4
      //           11      11+1        11+2         11+3         11/4
      //           12      12+1        12+2         12+3         12/4
      console.log(item + one(item) + two(item) + three(item) + four(item));
    }
}

start(10,11,12);

答案 1 :(得分:0)

您可以将所有函数放在数组中并减小值。

该函数收集数组中的所有参数。

通过对所有所需函数使用reduce方法来映射此值数组,并将每个值都用作reduce的起始值。

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

@ModelAttribute("course") 
public Course course() { 
  return new Course(); 
}

答案 2 :(得分:0)

您只需要为数组中的每个元素调用函数即可。

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){
  for(let num of array){
    console.log(four(three(two(one(num)))));
  } 
    //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);