【发布时间】:2021-11-19 03:27:11
【问题描述】:
这是我的第一个问题,所以请温柔:)
我知道我的问题与许多其他问题相似,并且我尝试了很多解决方案,但没有得到我需要的结果。
我有一个可以有重复 id 的对象数组。 id 'THOM01' 有 3 个对象:
[
{ id: 'MARS03', name: 'Employee 3', T1: 9.23, A6: '', SAT: '', SUN: '', PHW: '', SAN: '', COMM:'', BON: '', other: '', quantity: '', leaveDays: '', from: '', to: '', reason: '', costCentre: '', message: '' },
{ id: 'THOM01', name: 'Employee 4', T1: '', A6: '', SAT: 4.12, SUN: '', PHW: '', SAN: '', COMM: '', BON: '', other: '', quantity: '', leaveDays: '', from: '', to: '', reason: '', costCentre: '', message: '' },
{ id: 'THOM01', name: 'Employee 4', T1: '', A6: '', SAT: '', SUN: 6.12, PHW: '', SAN: '', COMM: '', BON: '', other: '', quantity: '', leaveDays: '', from: '', to: '', reason: '', costCentre: '', message: '' },
{ id: 'THOM01', name: 'Employee 4', T1: 15, A6: '', SAT: '', SUN: '', PHW: '', SAN: '', COMM: '', BON: '', other: '', quantity: '', leaveDays: '', from: '', to: '', reason: '', costCentre: '', message: '' }
]
需要合并具有相同 id 的对象(每个员工一个对象)。所以结果应该是这样的:
[
{ id: 'MARS03', name: 'Employee 3', T1: 9.23, A6: '', SAT: '', SUN: '', PHW: '', SAN: '', COMM:'', BON: '', other: '', quantity: '', leaveDays: '', from: '', to: '', reason: '', costCentre: '', message: '' },
{ id: 'THOM01', name: 'Employee 4', T1: 15, A6: 4.12, SAT: 4.12, SUN: '', PHW: '', SAN: '', COMM: '', BON: '', other: '', quantity: '', leaveDays: '', from: '', to: '', reason: '', costCentre: '', message: '' }
]
当我输出到 csv 以上传到工资系统时,我需要维护键/值对(包括空值对)的结构/位置,但对象的顺序并不重要。
我尝试过的其他解决方案总是最终只有一个工资率值(“T1”到“其他”)。它们似乎被覆盖,因为每个对象都有所有字段,即使它们是空的。
我希望这是足够的信息。谢谢!
戴夫
【问题讨论】:
-
如果存在冲突,即特定属性名称可能存在多个值,规则是什么?或者这可能吗?
-
不,这不可能发生。重要字段(从“T1”到“其他”)位于源文件的不同行中。
标签: javascript arrays object merge