请选择 进入手机版 | 继续访问电脑版

js求平均值

[复制链接]
孤单 发表于 2021-1-1 18:30:33 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
函数的参数都是类数组的聚集,因此需要先转换成数组,再举行操纵。
匀称值:要去最大值,最小值后再合计相除,就得出效果。
1.通例做法
  1. // 获取匀称数// arguments.sort() //->argument.sort is not function arguments是一个类数组聚集,它不是数组,不能直接使用数组的方法function avgFn(){    // ->将类数组转换为数组    let ary = [];    for(var i=0;i2.给数组排序没去掉开头末了,剩下球匀称数    ary.sort((a,b)=>{return a-b})    ary.shift()    ary.pop()    return (eval(ary.join("+")) / ary.length).toFixed(2);}avgFn(8,8,7,8,9,10)
复制代码
2.采取数组的分割方式
  1. function avgFn(){    // ->将类数组转换为数组    // let ary = Array.prototype.slice.call(arguments);    let ary = [].slice.call(arguments)    //->2.给数组排序没去掉开头末了,剩下球匀称数    ary.sort((a,b)=>{return a-b})    ary.shift()    ary.pop()    return (eval(ary.join("+")) / ary.length).toFixed(2);}avgFn(8,8,7,8,9,10)
复制代码
3.call改变this指向来实现
  1. function avgFn(){    Array.prototype.sort.call(arguments,function(a,b){return a-b});    [].shift.call(arguments);    [].pop.call(arguments);    return (eval([].join.call(arguments,'+'))/arguments.length).toFixed(2)}avgFn(8,8,7,8,9,10)
复制代码
尚有别的的,欢迎增补~~~

来源:https://blog.csdn.net/qq_39189369/article/details/112039665
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )