使用Javascript的数组中嵌套对象值的总和
我想得到运动量的总和。我试图得到两个过程数组元素的练习之和。** 试图对单个数组元素使用reduce方法,但无法获得和。 我尝试了forOf和forIn循环,但无法解决此问题使用Javascript的数组中嵌套对象值的总和,javascript,arrays,javascript-objects,Javascript,Arrays,Javascript Objects,我想得到运动量的总和。我试图得到两个过程数组元素的练习之和。** 试图对单个数组元素使用reduce方法,但无法获得和。 我尝试了forOf和forIn循环,但无法解决此问题 const courses = [ { name: "Half Stack application development", id: 1, parts: [ { name: 'Fundamentals of React', exercises: 10, id: 1
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课程=[
{
名称:“半栈应用开发”,
id:1,
部分:[
{
名称:“React的基本原理”,
练习:10,
身份证号码:1
},
{
名称:“使用道具传递数据”,
练习:7,
身份证号码:2
},
{
名称:“组件的状态”,
练习:14,
身份证号码:3
},
{
名称:“Redux”,
练习:11,
身份证号码:4
}
]
},
{
名称:“节点”,
id:2,
部分:[
{
名称:'路由',
练习:3,
身份证号码:1
},
{
名称:'中间件',
练习:7,
身份证号码:2
}
]
}
]
const sum=课程减少((acc,课程)=>{
acc[课程名称]=课程部分减少((acc,el)=>acc+el.EXACTIONS,0);
返回acc;
}, {});
控制台日志(总和)代码>想想这些步骤,这里有一些提示:
首先总结每门课程的练习
总结所有课程的所有练习
1.总结每门课程的练习
这里的想法是为每门课程创建一系列新的练习
exercises_courses = courses.map(item => {
item.parts.reduce((sum, part) => sum + part.exercises, 0)
})
2.总结所有练习
请发布您尝试的代码,否则我们无法帮助您改进它们。我想分别获得两个数组元素的和。因此,第一步是足够我想分别获得练习的和当然名称:半堆栈应用程序开发”和“节点”“.当然。。。更新此要求!让我知道它是否应该以不同的格式工作,但我不想显示像:4210这样的值,我想得到这样的值:半堆栈应用程序开发:42和节点:10有什么方法可以让你分享我的代码吗?我尝试了几种方法来解决它,但都无法解决。让我们一起来吧。
all_exercises = exercises_courses.reduce((sum, exercises_course) => sum + exercises_course, 0)
console.log(all_exercises)