zoukankan      html  css  js  c++  java
  • 一道阿里面试题(js)

    写一个求和的函数sum,达到下面的效果 

    // Should equal 15 
    sum(1, 2, 3, 4, 5); 
    //Should equal 0
    sum(5, 'abc', -5);
    //Should equal 4
    sum(1, true, 'a', 'D', 1, 'F', 1, 'w');

    下面附上多种方法:

    function sum(){
                    var add = 0;
                    for(var i = 0; i < arguments.length; i++){
                        if(!isNaN(Number(arguments[i]))){
                            add += Number(arguments[i]);
                        }
                    }
                    alert(add);
                }
    
                sum(1,2,3,4,5);
                sum(5,'asd',-5);
                sum(1, true, 'a', 'D', 1, 'F', 1, 'w');
    普通的方法
    var sum = function() {
      return [].slice.call(arguments).map(function(x) {
        return isNaN(Number(x)) ? 0 : Number(x);
      }).reduce(function(a, b) {
        return a + b;
      });
    }
    map&reduce方法
    var sum = function(){
       return [].reduce.call(arguments,
            function(a,b){return (parseFloat(+a)||0)+(parseFloat(+b)||0)})
    }
    再改

     评论中可附上你的方法哦。

  • 相关阅读:
    JS 寻路算法
    Fireworks基本使用
    html基础知识汇总(二)之Emmet语法
    JS函数式编程
    Web前端导航
    CSS样式一
    选择器的分类
    框架集
    表单标签元素
    图像热点&图像映射
  • 原文地址:https://www.cnblogs.com/skylor/p/4763938.html
Copyright © 2011-2022 走看看