美文网首页
求平均数

求平均数

作者: 嘿喵heyMeow | 来源:发表于2017-03-01 10:34 被阅读0次

    题目:求给定一组数的平均数,要求去掉一个最大值,去掉一个最小值,再求平均值。

    • 类数组转化为数组:
      把arguments这个类数组里的实参复制到一个空数组里,再对空数组排序,去掉最小值(排序后的第一个值)和最大值(排序后的最后一个值),最后通过“+”讲数组转化成字符串再用eval将其执行。
    function avgFn(){
        var arr=[];
        for(var i=0; i<arguments.length; i++){
            arr.push(arguments[i]);
        }
        arr.sort(function(a,b){
            return a-b;
        });
        arr.shift();
        arr.pop();
        return (eval(arr.join("+"))/arr.length).toFixed(2);
    }
    
    • 类数组借用数组的方法:
      类数组不是数组,所以不能直接用数组上的方法sort.....等,所以可用call方法借用数组的方法,其余思路和上面一样。
    function avgFn(){
        [].sort.call(arguments,function(a,b){
            return a-b;
        });
        [].shift.call(arguments);
        [].pop.call(arguments);
        return (eval([].join.call(arguments,"+"))/arguments.length).toFixed(2);
    }
    

    相关文章

      网友评论

          本文标题:求平均数

          本文链接:https://www.haomeiwen.com/subject/qudqgttx.html