FCC-Arguments Optional

创建一个计算两个参数之和的 function。如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果。
例如,add(2, 3) 应该返回 5,而 add(2) 应该返回一个 function。
调用这个有一个参数的返回的 function,返回求和的结果:
var sumTwoAnd = add(2);
sumTwoAnd(3) 返回 5。
如果两个参数都不是有效的数字,则返回 undefined。

梳理要求可知,大体上是两种可能,输入一个值输入两个值,第一种情况下判断是否数字,如果是则取获的下一个值,判断是否数字,最后相加返回;第二种情况判断是否数字,相加返回即可。比较难的点是获取下一个值的地方。

function add() {
  if(arguments.length===1 && typeof arguments[0] ==='number'){
    var x=arguments[0];
    return function(y){
      if(typeof y==='number'){
        return x+y;
      }else{return undefined;}
    };
  }else if(typeof arguments[0]==='number' && typeof arguments[1]==='number'){
    return arguments[0]+arguments[1];
  }
}

add(2)([3]);

你可能感兴趣的:(FCC-Arguments Optional)