关于freeCodeCamp挑战的问题:参数可选



我被困在 freeCodeCamp.org 的课程之一 https://www.freecodecamp.org/learn/javascript-algorithms-and-data-structures/intermediate-algorithm-scripting/arguments-optional

下面的代码是我写的。 在该代码中,addTogether(2((3( 应为 5。 但取而代之的是,addTogether(2((3( 是"未定义的"。

怎么了?

我阅读了freecodecamp论坛的所有提示。但我不明白。

function addTogether() {
var checkNum = function(x) {
if (typeof x === "number") {
return x
} else {
return undefined
}
}
if (arguments.length > 1) {
if (checkNum(arguments[0]) !== undefined && checkNum(arguments[1]) !== undefined) {
return arguments[0] + arguments[1]
} else {
return undefined
}
} else {
var a = arguments[0]
if (checkNum(a) === undefined) {
return undefined
} else {
return function(args2) {
args2 + a
}
}
}
return false;
}
console.log(addTogether(2)(3))

返回的函数没有返回值。 你可以使用

return function(args2) {
return args2 + a
}

return (args2) => args2 + a
function addTogether(a,b) {


if (arguments.length==2){
if (typeof a == "number" && typeof b == "number"){
return a + b;
}
}
if(arguments.length==1){
if (typeof a == "number"){
return function(b){
if (typeof b == "number"){
return a + b;
}
};
}
}
}

相关内容

  • 没有找到相关文章