来自数组中存储的对象的总和

我是JavaScript的新手,我已经尝试了很多东西。我必须对函数内每个人的所有值(等级)求和。因此,当我使用

调用外部函数时
console.log(totalNumberOfGrades(// I have to put here any of the three person objects... ));

因此函数内部可以对值求和。我在循环中使用.reducefor ...进行了尝试,但是当我使用数组allPerson时我不知道如何访问objects属性的值。感谢您的帮助,我会继续学习。

var person1 = {
    gradeMath: 2,gradeBio: 3,gradeEnglish: 1
};

var person2 = {
    gradeMath: 1,gradeBio: 2,gradeEnglish: 2
};

var person3 = {
    gradeMath: 3,gradeBio: 4,gradeEnglish: 3
};

var allPerson = [person1,person2,person3];

function totalNumberOfGrades(person) {
    // return the sum of grades for each person

}

结果如下:

console.log(totalNumberOfGrades(person1); = 6
a314913370 回答:来自数组中存储的对象的总和

您可以使用Object.valuesArray.reduce prototype

function totalNumberOfGrades(person) { // return the sum of grades for each person
  return Object.values(person) // return array: [2,3,1] with person1
               .reduce((total,grade) => total + grade,0)
}
,

我假设您想对每个对象中的每个成绩求和

var person1 = {
  gradeMath: 2,gradeBio: 3,gradeEnglish: 1
};

var person2 = {
  gradeMath: 1,gradeBio: 2,gradeEnglish: 2
};

var person3 = {
  gradeMath: 3,gradeBio: 4,gradeEnglish: 3
};

var allPerson = [person1,person2,person3];

const result = allPerson.reduce((acc,x) => {
  const sumAllGrades = Object.values(x).reduce((acc,y) => acc + y,0);
  return acc + sumAllGrades;
},0)
console.log(result)

,

forEach上使用Object.values

var person1 = {
    gradeMath: 2,gradeEnglish: 1
};

function totalNumberOfGrades(person) {
  let sum = 0;
  Object.values(person).forEach(val => (sum += val));
  return sum;
}

console.log(totalNumberOfGrades(person1));

本文链接:https://www.f2er.com/2672466.html

大家都在问