我似乎无法理解编写类似于eight(times(five)) in JavaScript的函数的逻辑。
示例:
eight(times(five))应返回40three(plus(two))应该返回5这是个代码战争的问题。它为类似于“8( ){ }”的数字0-9提供了空函数,为类似于“time( ){ }”的运算符提供了空函数。解决方案应该是执行“8(+(3))”将返回11,等等。
发布于 2018-08-31 16:24:28
您可以使用一个函数,该函数可以返回带有实际值的值或函数调用。然后,您需要一个操作数的函数,该操作数对该值的函数重新运行闭包。
function eight(fn) {
return typeof fn === 'function' ? fn(8) : 8;
}
function times(fn) {
return function (op) {
return fn() * op;
};
}
console.log(eight(times(eight)));
发布于 2018-08-31 16:34:44
我知道这个问题在我写这个reply...but的时候被回答了,我无论如何都会把它发出去。
function times(fn) {
return function (op) {
return fn() * op;
};
}
function plus(fn) {
return function (op) {
return fn() + op;
};
}
function minus(fn) {
return function (op) {
return fn() - op;
};
};
createNumbers = () => {
var num = 0;
['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'].forEach((number) => {
let val = num;
window[number] = (fn) => {
return fn ? fn(val) : val;
};
num++;
});
};
createNumbers();
three(times(five)); // 15
eight(plus(two));// 10
etchttps://stackoverflow.com/questions/52119313
复制相似问题