zoukankan      html  css  js  c++  java
  • [Intermediate Algorithm]

    题目

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

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

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

    var sumTwoAnd = add(2);

    sumTwoAnd(3) 返回 5

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

    提示

    Closures
    Arguments object

    测试用例

    • add(2, 3) 应该返回 5
    • add(2)(3) 应该返回 5
    • add("http://bit.ly/IqT6zt") 应该返回 undefined
    • add(2, "3") 应该返回 undefined
    • add(2)([3]) 应该返回 undefined

    分析思路

    1. 根据测试用例,需要先判断参数类型是否正确,使用 typeof 进行判断;
    2. 判断参数个数,为 1 则使用回调函数再传入下一个参数;
    3. 两个参数直接相加即可;

    代码

    function add() {
      for (var i = 0; i < arguments.length; i++) {
        if (typeof arguments[i] !== "number") {
          return undefined;
        }
      }
        
      if (arguments.length == 1){
        x = arguments[0];
        return function(val){
          if(typeof val == "number")
            return val + x;
          else
            return undefined;
        };
      }
      else {
        return arguments[0] + arguments[1];
      }
    }
    
    add(2,3);
    
  • 相关阅读:
    什么是透视图?
    Eclipse 视图
    Eclipse 菜单
    Eclipse 窗口说明
    Eclipse 修改字符集
    Eclipse 安装(Oxygen版本)
    Eclipse 教程
    jQuery 教程
    就表单验证说用户体验
    需要配置执行path?no
  • 原文地址:https://www.cnblogs.com/water-moon/p/6904748.html
Copyright © 2011-2022 走看看