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