Рассчитать среднее значение JSON - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь вычислить среднее значение 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 голосов
/ 21 ноября 2018

Вы можете уменьшить данные, взяв nth (длину) значения и добавив его к среднему значению за один цикл.

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);
0 голосов
/ 21 ноября 2018

Зависит от того, как у вас структурированы данные, но 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);
...