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)

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM