比较两个JavaScript对象以找到差异
创始人
2024-12-14 05:30:05
0

以下是一个比较两个JavaScript对象并找到差异的解决方法的代码示例:

function compareObjects(obj1, obj2) {
  var diff = {}; // 用于存储差异的对象
  
  // 检查obj1中的每个属性
  for (var key in obj1) {
    if (obj1.hasOwnProperty(key)) {
      
      // 如果obj2中没有相同的属性,则将该属性添加到差异对象中
      if (!obj2.hasOwnProperty(key)) {
        diff[key] = obj1[key];
      }
      
      // 如果obj2中有相同的属性,但属性值不同,则将属性和值添加到差异对象中
      else if (obj1[key] !== obj2[key]) {
        diff[key] = obj1[key];
      }
    }
  }
  
  // 检查obj2中的每个属性
  for (var key in obj2) {
    if (obj2.hasOwnProperty(key)) {
      
      // 如果obj1中没有相同的属性,则将该属性添加到差异对象中
      if (!obj1.hasOwnProperty(key)) {
        diff[key] = obj2[key];
      }
      
      // 如果obj1中有相同的属性,但属性值不同,则将属性和值添加到差异对象中
      else if (obj2[key] !== obj1[key]) {
        diff[key] = obj2[key];
      }
    }
  }
  
  return diff;
}

// 示例用法
var obj1 = { name: "John", age: 30, city: "New York" };
var obj2 = { name: "John", age: 35, city: "San Francisco", profession: "Developer" };

var differences = compareObjects(obj1, obj2);
console.log(differences); // 输出: { age: 35, city: "San Francisco", profession: "Developer" }

上述代码中的compareObjects函数接受两个对象作为参数并返回一个包含两个对象之间差异的新对象。它首先检查第一个对象中的每个属性,并将不同的属性和属性值添加到差异对象中。然后,它检查第二个对象中的每个属性,以确保没有遗漏。最后,它返回包含差异的对象。

在示例中,obj1obj2是两个JavaScript对象,obj1包含属性nameagecity,而obj2包含属性nameagecityprofession。将这两个对象传递给compareObjects函数后,将返回一个包含差异的新对象differences。在此示例中,differences对象具有属性agecityprofession,它们的值分别是35"San Francisco""Developer"

相关内容

热门资讯

识别九分钟!德州竞技联盟辅助线... 识别九分钟!德州竞技联盟辅助线上德州后台可以操控(本来真的有挂)-知乎1、超多福利:超高返利,海量正...
输赢七分钟!wpk辅助神器aa... 输赢七分钟!wpk辅助神器aapoker有猫腻(都是真的有挂)-今日头条;暗藏猫腻,小编详细说明aa...
打法3分钟!aapoker软件... 打法3分钟!aapoker软件有猫腻cloudpoker辅助器(果真真的有挂)-小红书aapoker...
大厅房七分钟!德州辅助软件欢乐... 大厅房七分钟!德州辅助软件欢乐棋牌有外挂(一贯真的有挂)-百度知乎1、玩家可以在欢乐棋牌有外挂软件透...
辅助3分钟!微扑克ai代打Aa... 辅助3分钟!微扑克ai代打Aapoker app(一般真的有挂)-小红书1、微扑克ai代打ai辅助优...
计算器2分钟!wpk可以检测伙... 计算器2分钟!wpk可以检测伙牌wpk ai检测(一贯真的有挂)-哔哩哔哩1、玩家可以在wpk可以检...
靠谱8分钟!微扑克辅助软件wp... 靠谱8分钟!微扑克辅助软件wpk辅助(原来真的有挂)-小红书微扑克辅助软件辅助器中分为三种模型:微扑...
软件6分钟!fishpoker... 软件6分钟!fishpoker有挂来玩德州扑克约局神器(其实真的有挂)-小红书1、来玩德州扑克约局神...
软件3分钟!微扑克规律德扑之星... 软件3分钟!微扑克规律德扑之星真的太假了(总是真的有挂)-百度知乎1、在德扑之星真的太假了ai机器人...
app一分钟!微扑克有机器人德... app一分钟!微扑克有机器人德州wpk德州有挂(果真真的有挂)-小红书1、用户打开应用后不用登录就可...