W3Cschool中级脚本算法(21.函数迭代可选参数算法挑战)

函数迭代可选参数算法挑战


问题:

创建一个计算两个参数之和的 function。如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果。

例如,add(2, 3) 应该返回 5,而 add(2) 应该返回一个 function。

调用这个有一个参数的返回的 function,返回求和的结果:

var sumTwoAnd = add(2);

sumTwoAnd(3) 返回 5

如果两个参数都不是有效的数字,则返回 undefined。


要求:

add(2, 3) 应该返回 5。

add(2)(3) 应该返回 5。

add("http://bit.ly/IqT6zt") 应该返回 undefined。

add(2, "3") 应该返回 undefined。

add(2)([3]) 应该返回 undefined。


问题答案:

function add() {
if(typeof arguments[0]=="number" && typeof arguments[1]=="number"){
    return arguments[0]+arguments[1];
  }
  else if(arguments.length==1 && typeof arguments[0]=="number"){
    var x=arguments[0];
    //如果只有一个数字型参数x,返回x和后面捕捉到的任意一个数字型参数y之和
    return function(y){
      if(typeof y =="number"){
        return x+y;
      }
    };
  }

}

add(2,3);

题目链接:

https://www.w3cschool.cn/codecamp/arguments-optional.html

你可能感兴趣的:(W3Cschool中级脚本算法(21.函数迭代可选参数算法挑战))