去掉一个最大值一个最小值计算数组平均数,为什么得出数值错误是64而不是79呢

saunter through life 2020-07-09 09:28:22
<script>
var arr = [90, 80, 70, 60, 95, 85, 70];
var sum = 0;
for (var i = 0; i < arr.length - 1; i++) {
for (var j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
sum += arr[i];
}
var unm = (sum - arr[0] - arr[arr.length - 1]) / (arr.length - 2);
console.log('求平均值' + unm);
</script>
...全文
2816 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
好的。。。。。。。。
chenrynet 2020-07-09
  • 打赏
  • 举报
回复
var arr = [90, 80, 70, 60, 95, 85, 70]; arr.sort(); //先排序 var sum=arr.reduce((acc,value)=>{return acc+value})-arr[0]-arr[arr.length-1] //累加后减去第一个(最小值)和第后一个(最大值) var average=sum/(arr.length-2)
Hongjin_ 2020-07-09
  • 打赏
  • 举报
回复
能解决记得结贴
Hongjin_ 2020-07-09
  • 打赏
  • 举报
回复
for (var j = 0; j < arr.length - 1 - i; j++) { if (arr[j] > arr[j + 1]) { [arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]; } } var j = 0,改成 j = i
chenrynet 2020-07-09
  • 打赏
  • 举报
回复
var arr = [90, 80, 70, 60, 95, 85, 70]; var max=Math.max(...arr) var min=Math.min(...arr) var average=(arr.reduce((acc,item)=>{return acc+item})-max-min)/(arr.length-2); console.log('求平均值' + average)

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧