需求:去掉一个最大值,去掉一个最小值,求剩余数的平均数
Array.prototype.pingjunzhi = function(){
let newAry = this.sort((a,b)=>{ return a-b; }).slice(1,this.length-1);
return Number.parseInt(eval(newAry.join("+"))/newAry.length);
}
来解释一下:
知道this是谁吧,因为我这个方法是写在原型上的,所以就是谁调用这个方法this就是谁喽,
首先给它排序,我这里是按照从小到大的排序,你也可以从大到小排序,随你喜欢,
比如说,this是这样的:[2,5,1,9],经过排序以后,this是这样的:[1,2,5,9]。
然后用链式写法调用了数组的方法slice,要知道你要使用链式写法,首先你得必须是同一种数据类型,很棒,我这里都是数组,调用slice从第一个开始,取到了倒数第二个,如果不了解slice,就去了解完了再来更好理解,那我为什么用了一个新变量来接收呢,因为slice不会改变原数组啊,所以只好来个新变量接喽。
然后把其余数相加并除去数的个数,再用parseInt只取整数部分,把这个结果return出来,得到的就是喽。
别说我命名不规范,我只是随便写的,也别说我带你走错,开发中的规则你还是要牢记的,开发中我也不 会用这种命名
欢迎批评指正!
网友评论