我正在尝试计算JSON值的平均值,我试图将它们添加到数组中,但无法这样做。有人可以帮忙吗?
我的代码:
Object.values(data).forEach(d => {
var yo = d.values;
console.log(yo);
});
我的结果:
9892308
9894522
3298714
3300055
我需要计算这些值的平均值。我该怎么办?
将值推入数组的代码:
Object.values(data).forEach(d => {
var theArray = [];
var yo = d.values;
theArray = theArray.push(yo);
console.log(theArray);
});
结果:
1
我无法为我推送值来计算数组。
答案 0 :(得分:0)
取决于数据的结构方式,但是Array.reduce
应该为您提供总和,然后除以平均长度。
const data = {
a: {
values: 9892308,
},
b: {
values: 9894522,
},
c: {
values: 3298714,
},
something_weird: {
values: 3300055,
}
}
const sum = Object.values(data).reduce((acc, current) => acc + current.values, 0);
const average = sum / Object.values(data).length;
console.log(average);
答案 1 :(得分:0)
您可以通过取值的第n个(长度)来减少数据,并将其添加到单个循环的平均值中。
var data = { a: { values: 9892308 }, b: { values: 9894522 }, c: { values: 3298714 }, d: { values: 3300055 } },
average = Object
.values(data)
.reduce((avg, { values }, _, { length }) => avg + values / length, 0);
console.log(average);