我有兩個深層/復(fù)雜的對象合并在一起。在'addresses' 數(shù)組中需要有兩個對象用于兩種不同的地址類型,“PRIMARY”和“MAILING”。在我的目標對象中,“PRIMARY” obj 位于“MAILING” obj 上方。除了源對象中只有“MAILING”obj 可用之外,一切都很好。發(fā)生這種情況時,兩個對象的“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/當前輸出(重復(fù)地址類型):_.merge({}, destination, source); //need new objectaddresses: [ { 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" } ]來自源的地址數(shù)組可能不包含任何對象、兩者都包含或一個。所以我的問題是,如果源 obj 中只有“MAILING”,我如何防止它覆蓋“PRIMARY”obj,同時留下“MAILING”(來自源)和“PRIMARY”obj(來自目標)?我應(yīng)該改用 mergeWith 嗎?
Lodash 合并:如果源值與目標值匹配,則僅復(fù)制對象屬性
慕勒3428872
2021-10-14 16:58:40