使用JS查找数组的平均值
Finding the average of an array using JS
我一直在寻找,但没有找到一个关于堆栈溢出的简单问答,也没有找到数组的平均值。
这是我有的阵列
const grades = [80, 77, 88, 95, 68];
我最初认为这个问题的答案是这样的:
let avg = (grades / grades.length) * grades.length
console.log(avg)
然而,这给了我一个NaN的输出。
所以我尝试了这个:
for (let grade of grades)
avg = (grade / grades.length) * grades.length
console.log(avg)
这给了我68的产量。(我不知道为什么)。
因此,我有两个问题。1.为什么我的输出是68?和2。有人能帮我找出一个数组的平均值吗?
使用ES6,您可以将Andy的解决方案转化为一行代码:
const average = array => array.reduce((a, b) => a + b) / array.length;
console.log(average([1,2,3,4,5]));
通过将所有元素相加,然后除以元素数量来计算平均值。
var total = 0;
for(var i = 0; i < grades.length; i++) {
total += grades[i];
}
var avg = total / grades.length;
你得到68作为结果的原因是,在你的循环中,你不断覆盖你的平均值,所以最终值将是你上次计算的结果。你的除法和乘法的级数和长度互相抵消。
对于问题的第二部分,您可以在此处使用reduce
以获得良好效果:
const grades = [80, 77, 88, 95, 68];
function getAvg(grades) {
const total = grades.reduce((acc, c) => acc + c, 0);
return total / grades.length;
}
const average = getAvg(grades);
console.log(average);
其他答案很好地解释了你为什么得了68分,所以我不在这里重复了。
MacGyver方式,仅适用于lulz
var a = [80, 77, 88, 95, 68];
console.log(eval(a.join('+'))/a.length)
只需执行一次reduce操作即可,如下所示;
var avg = [1,2,3,4].reduce((p,c,_,a) => p + c/a.length,0);
console.log(avg)
没有内置函数,但您可以使用它来获得总和
Array.prototype.sum = function() {
return this.reduce(function(a, b) {return a+b});
};
然后除以数组的长度,例如:
var arr = [1, 2, 3, 4, 5];
console.log(arr.sum() / arr.length)
var total = 0
grades.forEach(function (grade) {
total += grade
});
console.log(total / grades.length)
你能做的平均函数是:
const getAverage = (arr) => arr.reduce((p, c) => p + c, 0) / arr.length
此外,我建议使用popoular开源工具,例如Lodash
:
const _ = require('lodash')
const getAverage = (arr) => _.chain(arr)
.sum()
.divide(arr.length)
.round(1)
.value()
您可以使用javascript的map/reduce函数来查找平均值。Reduce将它们相加,map将找到平均值。
var avg = grades.map((c, i, arr) => c / arr.length).reduce((p, c) => c + p);
相关文章:
- 使用JS查找数组的平均值
- JS:从整个数组中每次得到5个项目,并得到平均值
- Angularjs:访问范围变量数组并计算平均值
- 从javascript数组计算平均值
- 数组循环以确定范围平均值
- 使用多个分组依据查找哈希数组的平均值
- 查找1000个随机整数的数组的平均值javascript
- 计算数组中点的平均值-Javascript
- 计算多维数组的平均值
- 在数组对象上迭代并计算平均值
- 什么是“;键“;在Javascript数组中的平均值
- 使用Javascript从输入数组中查找平均值-计算不正确
- 计算数组中对象属性的平均值
- 在2d数组中,查找每列的平均值,但忽略0、,
- 将字符串数组转换为浮点数,然后查找转换后数组的平均值
- 求数组数据的平均值
- 计算JavaScript中多维数组的总体平均值
- 在表中打印存储在数组中的值的平均值
- 从json到数组的数组的基于日期的平均值
- 遍历数组并计算数组各部分的平均值