[英]Sum of nested object values in Array using Javascript
我想得到鍛煉的總和。 我正在嘗試獲取兩個 Course 數組元素的總和。** 嘗試對單個數組元素使用 reduce 方法,但無法得到總和。 我嘗試了 forOf 和 forIn 循環,但我無法解決這個問題。
const courses = [
{
name: "Half Stack application development",
id: 1,
parts: [
{
name: 'Fundamentals of React',
exercises: 10,
id: 1
},
{
name: 'Using props to pass data',
exercises: 7,
id: 2
},
{
name: 'State of a component',
exercises: 14,
id: 3
},
{
name: 'Redux',
exercises: 11,
id: 4
}
]
},
{
name: "Node",
id: 2,
parts: [
{
name: 'Routing',
exercises: 3,
id: 1
},
{
name: 'Middleware',
exercises: 7,
id: 2
}
]
}
]
您可以使用map
並reduce
組合以獲得每門課程的鍛煉總量。
const courses = [ { name: "Half Stack application development", id: 1, parts: [ { name: 'Fundamentals of React', exercises: 10, id: 1 }, { name: 'Using props to pass data', exercises: 7, id: 2 }, { name: 'State of a component', exercises: 14, id: 3 }, { name: 'Redux', exercises: 11, id: 4 } ] }, { name: "Node", id: 2, parts: [ { name: 'Routing', exercises: 3, id: 1 }, { name: 'Middleware', exercises: 7, id: 2 } ] } ] const sum = courses.reduce((acc, course) => { acc[course.name] = course.parts.reduce((acc, el) => acc + el.exercises, 0); return acc; }, {}); console.log(sum);
想想這些步驟,這里有提示:
這里的想法是為每門課程創建一組新的練習計數
exercises_courses = courses.map(item => {
item.parts.reduce((sum, part) => sum + part.exercises, 0)
})
all_exercises = exercises_courses.reduce((sum, exercises_course) => sum + exercises_course, 0)
console.log(all_exercises)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.