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)