亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Lodash 合并:如果源值與目標值匹配,則僅復制對象屬性

Lodash 合并:如果源值與目標值匹配,則僅復制對象屬性

慕勒3428872 2021-10-14 16:58:40
我有兩個深層/復雜的對象合并在一起。在'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 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"     }    ]來自源的地址數組可能不包含任何對象、兩者都包含或一個。所以我的問題是,如果源 obj 中只有“MAILING”,我如何防止它覆蓋“PRIMARY”obj,同時留下“MAILING”(來自源)和“PRIMARY”obj(來自目標)?我應該改用 mergeWith 嗎?
查看完整描述

1 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

我能夠使用以下自定義程序功能以及mergeWith:


mergeWith({}, destination, source, customizer);


const customizer = (objValue, srcValue, key) => {

  if (key === "addresses") {

    let merged = merge(

      keyBy(objValue, "addressType"),

      keyBy(srcValue, "addressType")

    );

    let value = values(merged);

    return value;

  }

};


查看完整回答
反對 回復 2021-10-14
  • 1 回答
  • 0 關注
  • 252 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號