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

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

比較 2 個不同 JSON 對象的鍵并返回鍵及其不匹配的值

比較 2 個不同 JSON 對象的鍵并返回鍵及其不匹配的值

慕森王 2022-12-09 17:17:35
我有兩個 json 對象。我也在他們身上使用了 json.stringfy。Json1 和 json2 有特定的鍵。兩個對象中很少有鍵相似,而其他鍵則不同。我不在乎兩個對象的值是否不同。在檢查 json2 中是否存在鍵后,我想返回 Json1 的不匹配鍵及其值。前任:Json1:{"A":2,"B": "jrrj"  }Json2 : {"A" : 6,"C" : "jrdj" }預期輸出:Result: {"B" : "jrrj" }我在 SO 上搜索了很多解決方案,但找不到一個完全相同的合適解決方案,而且我無法找出一個。請幫幫我。PS - 現在我使用的是 ES5 js 版本。
查看完整描述

2 回答

?
至尊寶的傳說

TA貢獻1789條經驗 獲得超10個贊

如果那是第二個對象缺少的平面對象和鍵,您可以:

  • Object.keys()第一個對象的提取

  • 用于Array.prototype.reduce()遍歷后者并將其轉換為一個對象,其屬性設置為第一個對象的唯一屬性

以下是一個快速演示:

const o1 ={"A":2,"B":"jrrj"},

      o2 ={"A":6,"C":"jrdj"},


      diff = Object

              .keys(o1)

              .reduce((r,key) => 

                (!(key in o2) && (r[key] = o1[key]), r), {})

 

      

console.log(diff)

ES5兼容版本

const o1 ={"A":2,"B":"jrrj"},

      o2 ={"A":6,"C":"jrdj"},


      diff = Object

        .keys(o1)

        .reduce(function(r, key){

          if(!(key in o2)) r[key] = o1[key]

          return r

        }, {})

      

console.log(diff)


查看完整回答
反對 回復 2022-12-09
?
溫溫醬

TA貢獻1752條經驗 獲得超4個贊

const object_1 = {"A":2,"B":"jrrj"};

const object_2 = {"A":6,"C":"jrdj"};


var new_obj = {};


Object.keys(object_1).map(

  function(obj_1_key){

    if(!object_2[obj_1_key]){

        new_obj[obj_1_key] = object_1[obj_1_key];

    }

  }

)


console.log(new_obj);


查看完整回答
反對 回復 2022-12-09
  • 2 回答
  • 0 關注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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