【发布时间】:2016-10-07 07:37:18
【问题描述】:
我在代码大战中研究了这个问题一段时间,并使用 repl.it 对其进行了测试。它是一个简单的一元函数链接器,但它仅适用于 repl.it,而 codewars 在给出此代码时会给我一个 TypeError:
function chained(functions) {
var funcs = Array.prototype.slice.call(arguments);
return function (value){
var finalValue = funcs.reduce(function(prevVal, currFunc){
return currFunc(prevVal);
}, value);
return finalValue;
}
}
它告诉我 currFunc 不是一个函数,但是使用以下测试代码我在 repl.it 中运行时得到了正确的答案:
function f1(x){ return x*2 }
function f2(x){ return x+2 }
function f3(x){ return Math.pow(x,2) }
console.log(chained(f1,f2,f3)(0));
它不是代码战中的函数有什么原因吗?
【问题讨论】:
-
确切的错误是什么?
-
This: TypeError: currFunc is not a function at Array.reduce at doFunc at Object.handleError at ContextifyScript.Script.runInThisContext at Object.exports.runInThisContext
-
您确定 codewars 正在运行您发布的代码吗?
标签: javascript functional-programming chaining declarative-programming