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

Как сложить элементы массива, который является значением свойства объекта?

Существует определённый объект. Количество свойств неизвестно, но известно, что значениями свойств могут быть массивы. Количество элементов в массиве также неизвестно. Как в данной ситуации сложить элементы массива, как к ним обращаться? Сначала я перебрала свойства через цикл for in, а что дальше нужно сделать?
Пример объекта:
let obj ={
  algebra: [3, 4, 5, 3, 4, 5],
  geometry: [4, 5, 4, 3, 5],
  physics: [5, 4, 3, 5, 4, 4]
}
  • Вопрос задан
  • 115 просмотров
Подписаться 1 Простой 3 комментария
Решения вопроса 3
WblCHA
@WblCHA
const result = Object.entries(obj).reduce((acc, [key, nums]) => {
    if (Array.isArray(nums)) {
      acc[key] = nums.reduce((acc, num) => acc + num, 0) / nums.length;
    }
    return acc;
  }, {});
Ответ написан
Комментировать
kritskiy_a
@kritskiy_a
Frontend-developer
let obj = {
  algebra: [3, 4, 5, 3, 4, 5],
  geometry: [4, 5, 4, 3, 5],
  physics: [5, 4, 3, 5, 4, 4],
};

for (let item in obj) {
  let sum = 0;
  for (el of obj[item]) {
    sum += el;
  }
  console.log(item, sum);
}


Если среднее арифметическое, то далее просто делим на количество элементов в массиве
Ответ написан
Комментировать
@V0vash
Цель как я понимаю найти среднее арифметическое
let obj ={
algebra: [3, 4, 5, 3, 4, 5],
geometry: [4, 5, 4, 3, 5],
physics: [5, 4, 3, 5, 4, 4],
}

for (let key in obj) {
 console.log(key, obj[key].reduce((a,b) => a+b)/obj[key].length)
}

// -> "algebra", 4
// -> "geometry", 4.2
// -> "physics", 4.166666666666667
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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