具有多个参数的多个回调函数
Multiple callback functions with multiple arguments
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参数和回调。这是最好的方法吗? Rest 参数传递 n 个时间参数和回调可以按顺序调用函数。但是,我找不到在此类问题中使用回调函数的方法。
有没有办法使用回调函数?
我认为您正在寻找这样的解决方案:
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);
您可以将所有函数放在一个数组中并减少值。
该函数将所有参数收集在一个数组中。
这个值数组是通过对所有需要的函数使用reduce方法映射的,每个值都作为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);
您只需按顺序为数组中的每个元素调用函数。
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);
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参数和回调。这是最好的方法吗? Rest 参数传递 n 个时间参数和回调可以按顺序调用函数。但是,我找不到在此类问题中使用回调函数的方法。
有没有办法使用回调函数?
我认为您正在寻找这样的解决方案:
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);
您可以将所有函数放在一个数组中并减少值。
该函数将所有参数收集在一个数组中。
这个值数组是通过对所有需要的函数使用reduce方法映射的,每个值都作为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);
您只需按顺序为数组中的每个元素调用函数。
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);