使用Javascript的数组中嵌套对象值的总和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Javascript的数组中嵌套对象值的总和相关的知识,希望对你有一定的参考价值。
我想得到运动的总和。我正在尝试两个课程数组元素的总和。**试图在单个数组元素上使用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);
另一答案
思考步骤,这里提示:
- 每门课程的总和练习
- 总结所有课程的所有练习
1。每个课程的总结练习
这里的想法是为每个课程创建一个新的练习数数组
exercises_courses = courses.map(item => {
item.parts.reduce((sum, part) => sum + part.exercises, 0)
})
2。总结所有练习
all_exercises = exercises_courses.reduce((sum, exercises_course) => sum + exercises_course, 0)
console.log(all_exercises)
另一答案
const Content = ({ partsName }) => {
console.log("partsName", partsName);
// var totalExercise = partsName.map(name => name);
// let a = totalExercise.reduce((prev, cur) => prev + cur.exercises, 0);
// console.log(a);
return (
<div>
{partsName.map(course => {
return (
<div key={course.id}>
<h1 key={course.id}>{course.name}</h1>
<ul>
{course.parts.map(names => (
<li key={names.id}>
{names.name} <span>{names.exercises}</span>
</li>
))}
</ul>
<p>Total Exercise:</p>
</div>
);
})}
</div>
);
};
export default Content;
这是我的reactJS代码。试图获得锻炼。
以上是关于使用Javascript的数组中嵌套对象值的总和的主要内容,如果未能解决你的问题,请参考以下文章
Mongoose - 使用 find() 查询文档,其中嵌套数组值的总和在一定范围内