我有两个深层/复杂的对象合并在一起。在'addresses' 数组中需要有两个对象用于两种不同的地址类型,“PRIMARY”和“MAILING”。
在我的目标对象中,“PRIMARY” obj 位于“MAILING” obj 上方。除了源对象中只有“MAILING”obj 可用之外,一切都很好。发生这种情况时,两个对象的“addressType”属性都会被“MAILING”覆盖
// In destination obj:
addresses: [
{
addressType: "PRIMARY",
addressLine1: "",
addressLine2: "",
city: "",
state: "",
zip: ""
},
{
addressType: "MAILING",
...
}
]
// In source obj:
addresses: [
{
addressType: "MAILING",
addressLine1: "123 Main St",
addressLine2: "",
city: "Hawkins",
state: "IN",
zip: "46001"
}
]
之后merge/当前输出(重复地址类型):
_.merge({}, destination, source); //need new object
addresses: [
{
addressType: "MAILING",
addressLine1: "123 Main St",
addressLine2: "",
city: "Hawkins",
state: "IN",
zip: "46001"
},
{
addressType: "MAILING",
addressLine1: "",
addressLine2: "",
city: "",
state: "",
zip: ""
}
]
期望输出:
// DESIRED OUTPUT:
addresses: [
{
addressType: "PRIMARY",
addressLine1: "",
addressLine2: "",
city: "",
state: "",
zip: ""
},
{
addressType: "MAILING",
addressLine1: "123 Main St",
addressLine2: "",
city: "Hawkins",
state: "IN",
zip: "46001"
}
]
来自源的地址数组可能不包含任何对象、两者都包含或一个。
所以我的问题是,如果源 obj 中只有“MAILING”,我如何防止它覆盖“PRIMARY”obj,同时留下“MAILING”(来自源)和“PRIMARY”obj(来自目标)?
我应该改用 mergeWith 吗?
慕勒3428872
一只名叫tom的猫
随时随地看视频慕课网APP
相关分类