js学习总结----获取平均数

具体代码如下

//模拟内置的slice实现数组克隆的功能
        Array.prototype.mySlice = function(){
            //内置的代码
            var ary = [];
            for(var i =0;i<this.length;i++){
                ary[ary.length] = this[i]
            }
            return ary
            //自己写的一份把arguments转换为数组的代码
            // var ary = [];
            // for(var i = 0;i<arguments.length;i++){
            //     ary[ary.length] = arguments[i]
            // }
        }
        function avgFn(){
            //1、将类数组转化为数组 把arguments克隆一份一模一样的数组出来
            //借用数组原型上的slice方法,当slice执行的时候,让方法中的this变为我们要处理的arguments,实现将类数组arguments转化为数组
            // var ary = [];
            // for(var i = 0;i<arguments.length;i++){
            //     ary[ary.length] = arguments[i]
            // }
            //第一步可以进行优化
            var ary = Array.prototype.slice.call(arguments);//或者[].slice.call(arguments)

            //2、给数组排序,去掉开头和结尾,剩下的求平均数
            ary.sort(function(a,b){
                return a-b
            })
            //也可以借用数组的sort排序
            Array.prototype.sort.call(arguments,function(a,b){
                return a-b;
            })
            ary.shift();
            ary.pop();
            return (eval(ary.join('+'))/ary.length).toFixed(2)
        }
        var res = avgFn(9.8,9.7,10,9.9,9.0,9.8,3.0)

 

posted @ 2017-06-29 13:52  diasa  阅读(2015)  评论(0编辑  收藏  举报