Сравнить два объекта и вернуть значения которых нету в старом

Нужно сравнить два обьекта и вернуть новый с всеми значениями который были изменены.

На выходе с двух нужно вернуть только:

const objCompare = {
 "companies": ['0', '1'],
 "additionalCompanies": ['0', '1']
  user: {
   "lastName": "smithssі",
  }
}

Так как эти данные есть в новом но нету в старом обьекте.

Пример обьектов и функции:

    const objnew  ={
        "id": 11,
          "createdAt": "2022-03-23T13:08:18.081Z",
          "updatedAt": "2022-03-23T16:28:46.528Z",
          "user": {
        "id": 3,
            "email": "[email protected]",
            "role": "Employee",
            "title": "someTItle",
            "firstName": "johnsss",
            "lastName": "smithssі",
            "accountStatus": 3,
            "createdAt": "2022-03-23T13:08:18.081Z",
            "updatedAt": "2022-03-23T18:22:36.846Z",
            "password": "sdfkkdSW1_"
      },
        "companies": ['0', '1'],
          "additionalCompanies": ['0', '1']
      }
    
    
     const objOld = {
        "id": 11,
          "createdAt": "2022-03-23T13:08:18.081Z",
          "updatedAt": "2022-03-23T16:28:46.528Z",
          "user": {
        "id": 3,
            "email": "[email protected]",
            "role": "Employee",
            "title": "someTItle",
            "firstName": "johns",
            "lastName": "smithss",
            "accountStatus": 3,
            "createdAt": "2022-03-23T13:08:18.081Z",
            "updatedAt": "2022-03-23T18:22:36.846Z"
      },
        "companies": [],
          "additionalCompanies": []
      }



const compareObject = (newObj, oldObj) => {
  if (Object.keys(oldObj).length == 0 && Object.keys(newObj).length > 0)
    return newObj;

  const diff = {};
  for (const key in oldObj) {
    if (newObj[key] && oldObj[key] != newObj[key]) {
      diff[key] = newObj[key];
    }
  }

  if (Object.keys(diff).length > 0) return diff;

  return oldObj;
};

console.log(compareObject(objnew, objOld) )


Ответы (0 шт):