javascript - 显示两个 JS 对象之间的差异

标签 javascript

我正在尝试显示其值不同的属性的名称。 然后,我试图显示另一个变量上不存在的属性

myObj1 = {
  "name": "John",
  "age": "45",
  "car": 20,
  "test": 30,
  "example": 20
};
myObj2 = {
  "name": "John",
  "age": "30",
  "car": 10,
  "example": 10
};

// or 

//myObj1 = { "name":"John", "age":"45", "car":20 };
//myObj2 = { "name":"John", "age":"30", "car":10,"test":30 };



// find keys
keyObj1 = Object.keys(myObj1);
keyObj2 = Object.keys(myObj2);

// find values
valueObj1 = Object.values(myObj1);
valueObj2 = Object.values(myObj2);

// find max length to iterate	
if (keyObj1.length > keyObj2.length) {
  var biggestKey = keyObj1.length;
} else {
  var biggestKey = keyObj2.length;
}

// now compare their keys and values 
for (var i = 0; i < biggestKey; i++) {
  //console.log(biggestKey)
  if (keyObj1[i] == keyObj2[i] && valueObj1[i] !== valueObj2[i]) {
    console.log('property:' + keyObj1[i]);
    console.log('first:' + valueObj1[i]);
    console.log('second:' + valueObj2[i]);
  }
}

实际结果:

  • 属性(property):年龄,45,30
  • 属性(property):汽车,20,10
  • 属性:测试,30,10
  • 属性:示例,20,未定义

预期结果:

  • 属性(property):年龄,45,30
  • 属性(property):汽车,20,10
  • 属性:测试,30,未定义
  • 属性:例如,20,10

最佳答案

问题

  • biggestKey 是长度而不是数组

  • 在 biggestKey 中按键比较对象

myObj1 = {
  "name": "John",
  "age": "45",
  "car": 20,
  "test": 30,
  "example": 20
};
myObj2 = {
  "name": "John",
  "age": "30",
  "car": 10,
  "example": 10
};


// find keys
keyObj1 = Object.keys(myObj1);
keyObj2 = Object.keys(myObj2);

// find max length to iterate	
if (keyObj1.length > keyObj2.length) {
  var biggestKey = keyObj1;
} else {
  var biggestKey = keyObj2;
}

// now compare their keys and values 
for (var i = 0; i < biggestKey.length; i++) {
  //console.log(biggestKey)
  var key = biggestKey[i];
  if (myObj1[key] != myObj2[key]) {
    console.log('project:', key, myObj1[key], myObj2[key]);
  }
}

关于javascript - 显示两个 JS 对象之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58011402/

相关文章:

javascript - 如何从图像输入中获取 xy 坐标?

javascript - 2D 数组到 3D 数组 Javascript(Google 脚本)

javascript - window.location.href 在 .html 后带有 # hash

javascript - 如何检查被拖动的元素是否具有特定的类?

javascript - Openlayers 从元素获取 map

javascript - 在javascript中创建对象时如何保存动态键引用?

javascript - 使用单击事件锚定动态元素

javascript - 了解递归函数的蹦床优化

javascript - 如何使用 JavaScript 中搜索到的文本对数组进行排序?

javascript - React 不渲染新组件,新的 webpack 设置