-5

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

const obj1={name:"abc",age:21,place:"xyz"}
const obj2={name:"pqr",age:21}

所以,我想在{name:"pqr"}这里返回名称值与第一个对象不同。我试过了,

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

const returnObject = { ...findOwner, ...data };

但这些返回的并不完全是我想要的。

4

1 回答 1

2

解决方案是,

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);
}

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

于 2021-05-07T09:35:37.157 回答