Глубокое сравнение объектов JS?
Хорошо работает, говорите?
deepEqual({a: 1}, {b: 1}); // true
deepEqual(null, {b: 1}); // 1
deepEqual({a: 1, b: 2}, {b: 2, a: 1}); // false
Моё решение
const deepEqual = (a, b) => {
  if (a === b) {
    return true;
  }
  if (a === null || b === null || typeof a !== 'object' || typeof b !== 'object') {
    return false;
  }
  const aKeys = Object.keys(a);
  const bKeys = Object.keys(b);
  if (aKeys.length !== bKeys.length) {
    return false;
  }
  for (let i = 0; i < aKeys.length; i += 1) {
    const key = aKeys[i];
    if (!bKeys.includes(key) || !deepEqual(a[key], b[key])) {
      return false;
    }
  }
  return true;
};

JSON.stringify({a:1}) === JSON.stringify({a:1})
Или так ))