Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript的数组中嵌套对象值的总和_Javascript_Arrays_Javascript Objects - Fatal编程技术网

使用Javascript的数组中嵌套对象值的总和

使用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

我想得到运动量的总和。我试图得到两个过程数组元素的练习之和。** 试图对单个数组元素使用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课程=[
{
名称:“半栈应用开发”,
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)