比较两个对象并替换公共对象属性

时间:2020-08-12 15:44:06

标签: javascript arrays object

我有以下两个数组,我想找到对象之间的通用属性,并将属性从对象1替换为对象2

Object 1: noAssignmentArray
[{
  AWART: "awart",
  LGART: "lgart",
  LTXA1: "ltxa1"
}]

Object 2: 
[{
  AllowEdit: ""
  AllowRelease: "X"
  ApproverId: "00000000" 
  TimeEntryDataFields:{
    ALLDF: ""
    APNAM: ""
    ARBID: "10004821"
    ARBPL: ""
    AUERU: ""
    AWART: "state",
    LGART: "material",
    LTXA1: "value"
  }
}]

对象2的预期结果

[{
  AllowEdit: ""
  AllowRelease: "X"
  ApproverId: "00000000" 
  TimeEntryDataFields:{
    ALLDF: ""
    APNAM: ""
    ARBID: "10004821"
    ARBPL: ""
    AUERU: ""
    **AWART: "awart",
    LGART: "lgart",
    LTXA1: "ltxa1"
  }
}]

2 个答案:

答案 0 :(得分:1)

您可以使用ES6传播运算符合并obj2数组的第一个元素

Obj2[0] = {...Obj2[0], ...Obj1[0]}

常规语法是

{...X, ...Y} // ES6
Object.assign({}, X, Y) // Before ES6

答案 1 :(得分:0)

也许这对您有帮助,假设您确实有一个数组,其中的元素恰好包含实际的有效载荷:

const assignment = assignmentArray[0];
const newDataFields = noAssignmentArray[0];
Object.assign(assignment.TimeEntryDataFields, newDataFields);

这利用了Object.assign函数,该函数只是将所有属性从第二个参数对象复制到第一个参数对象,而无需检查这是否会导致任何更改。

相关问题