计算JSON值的平均值

时间:2018-11-21 19:43:43

标签: javascript jquery json foreach average

我正在尝试计算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

我无法为我推送值来计算数组。

2 个答案:

答案 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);