如何比较javascript中的两个对象并获得差异?

如何比较javascript中的两个对象并获得差异?,javascript,compareobject,Javascript,Compareobject,我有两个对象要比较。我想找到第二个对象中不同的键及其值。它应该只返回对象中的不同键及其值 const obj1={name:"abc",age:21,place:"xyz"} const obj2={name:"pqr",age:21} 因此,这里我想返回{name:pqr},因为这里的name值与第一个对象不同。 我已经试过了 const returnObject = Object.assign({}, findOwner, dat

我有两个对象要比较。我想找到第二个对象中不同的键及其值。它应该只返回对象中的不同键及其值

const obj1={name:"abc",age:21,place:"xyz"}
const obj2={name:"pqr",age:21}
因此,这里我想返回{name:pqr},因为这里的name值与第一个对象不同。 我已经试过了

const returnObject = Object.assign({}, findOwner, data);

但这些并不是我想要的结果。

解决方案是

function Newdifference(origObj, newObj) {
  function changes(newObj, origObj) {
    let arrayIndexCounter = 0
    return transform(newObj, function (result, value, key) {
      if (value && !isObject(value) && !isEqual(JSON.stringify(value), JSON.stringify(origObj[key]))) {
        let resultKey = isArray(origObj) ? arrayIndexCounter++ : key
        result[resultKey] = (isObject(value) && isObject(origObj[key])) ? changes(value, origObj[key]) : value
      }
    });
  };
  return changes(newObj, origObj);
}

此函数将返回在两个对象中跟踪的更改

尝试了什么?添加您为解决此问题所做的任何尝试。以下是google搜索您的问题标题的第一个结果:请添加您的输入、预期输出和您尝试的代码。有很多类似的问题,包括嵌套对象:请阅读不要问关于。。。你还没有找到答案的问题展示你的作品!你可以看到问题的变化
function Newdifference(origObj, newObj) {
  function changes(newObj, origObj) {
    let arrayIndexCounter = 0
    return transform(newObj, function (result, value, key) {
      if (value && !isObject(value) && !isEqual(JSON.stringify(value), JSON.stringify(origObj[key]))) {
        let resultKey = isArray(origObj) ? arrayIndexCounter++ : key
        result[resultKey] = (isObject(value) && isObject(origObj[key])) ? changes(value, origObj[key]) : value
      }
    });
  };
  return changes(newObj, origObj);
}