Задать вопрос
@ignis21

Как сложить и узнать среднее значение объекта?

Есть 4 объекта, как в них мне посчитать средний возраст?
1) friend1 {
name: Ihor
age: 22
}
2) friend2 {
name: Vlad
age:25
}
3) friend3 {
name: Oleh
age: 28
}
4) friend4 {
name: Sasha
age:20
}
  • Вопрос задан
  • 89 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Сложить объекты в массив, и

const averageAge = arr.reduce((acc, n) => acc + n.age, 0) / arr.length;

Это если делать просто и ровно то, что спрошено. Но можно решить задачу и в более общем виде - сделаем функцию, вычисляющую среднее передаваемого ей итерируемого объекта:

function avg(data, key = n => n) {
  const getVal = key instanceof Function ? key : n => n[key];
  let sum = 0;
  let count = 0;

  for (const n of data) {
    sum += getVal(n);
    count += 1;
  }

  return sum / count;
}

В вашем случае применять так: const averageAge = avg(arr, 'age');.

Другие варианты использования:

avg(Array(10).keys()) // 4.5
avg('12345', Number) // 3
avg(document.images, n => n.width) // сами посмотрите, сколько тут получится
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы