【发布时间】:2020-06-13 12:48:52
【问题描述】:
我有 2 个带有学生 ID 的数组对象作为公共数据 第一个数组有学生的数据,如下所述
[{
_id: "5ed1c2d2daf8d21e26798a74",
name: 'Student 1',
class: 'one',
teacher: 'teacher one',
date: 2020-05-30T02:20:02.927Z,
__v: 0
},
{
_id: "5ed1c2d2daf8d21e26798a65",
name: 'Student 2',
class: 'one',
teacher: 'teacher one',
date: 2020-05-30T02:20:02.927Z,
__v: 0
},{
_id: "5ed1c2d2daf8d21e26798a66",
name: 'Student 3',
class: 'three',
teacher: 'teacher two',
date: 2020-05-30T02:20:02.927Z,
__v: 0
}]
还有另一个数组对象,每个学生都有相同的 _id 和一些关于出勤的数据
[ {
StudentName: {
_id: 5ed1c2d2daf8d21e26798a74,
name: 'Student One',
teacher: 'teacher one',
date: 2020-05-30T02:19:10.819Z,
__v: 0
},
Present: 10,
absent: 5,
extra: 2
},
{
StudentName: {
_id: 5ed1c2d2daf8d21e26798a65,
name: 'Student two',
teacher: 'teacher one',
date: 2020-05-30T02:19:10.819Z,
__v: 0
},
Present: 12,
absent: 7,
extra: 1
}]
我想以匹配学生 _id 的方式合并它,并将出勤数据字段合并到第一个数组(一个新数组)中,如果没有数据,则应将其设置为 0。提到了预期结果下面
[{
_id: "5ed1c2d2daf8d21e26798a74",
name: 'Student 1',
class: 'one',
teacher: 'teacher one',
date: 2020-05-30T02:20:02.927Z,
Present: 10,
absent: 5,
extra: 2
__v: 0
},
{
_id: "5ed1c2d2daf8d21e26798a65",
name: 'Student 2',
class: 'one',
teacher: 'teacher one',
date: 2020-05-30T02:20:02.927Z,
Present: 17,
absent: 7,
extra: 1,
__v: 0
},{
_id: "5ed1c2d2daf8d21e26798a74",
name: 'Student 3',
class: 'three',
teacher: 'teacher two',
date: 2020-05-30T02:20:02.927Z,
Present: 0,
absent: 0,
extra: 0,
__v: 0
}]
非常感谢任何帮助。
【问题讨论】:
-
你期待什么?写并给你逻辑代码?
-
示例代码或建议。实际数据庞大,属性更多,我只需要一个起点
-
至少提供一个适当的例子,在你的情况下,所有元素都有相同的
_id字段,我们甚至不能以这种方式正确地完成你的作业。 -
@creativated ok 开始逻辑比较 2 数组和 _id 属性
-
我意识到并修复了它。需要刷新
标签: javascript arrays merge