我是JavaScript的新手,我已经尝试了很多东西。我必须对函数内每个人的所有值(等级)求和。因此,当我使用
调用外部函数时console.log(totalNumberOfGrades(// I have to put here any of the three person objects... ));
因此函数内部可以对值求和。我在循环中使用.reduce
和for
...进行了尝试,但是当我使用数组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
答案 0 :(得分:1)
您可以使用Object.values和Array.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)
}
答案 1 :(得分: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)
答案 2 :(得分:0)
在forEach
上使用Object.values
var person1 = {
gradeMath: 2,
gradeBio: 3,
gradeEnglish: 1
};
function totalNumberOfGrades(person) {
let sum = 0;
Object.values(person).forEach(val => (sum += val));
return sum;
}
console.log(totalNumberOfGrades(person1));