Compare object deep equality

by Jagrati Tomar

JavaScript

function deepEqual(valueA, valueB) {
  // prmitives
  if (Object.is(valueA, valueB)) {
    return true;
  }
  console.log(typeof valueA);

  if (typeof valueA !== "object" || typeof valueB != "object") {
    return false;
  }

  const keysA = Object.keys(valueA);
  const keysB = Object.keys(valueB);

  console.log(keysA, keysB, valueA);

  if (keysA.length != keysB.length) {
    return false;
  }

  for (const key in valueA) {
    if (!valueB.includes(valueA[key]) || !deepEqual(valueA[key], valueB[key])) {
      return false;
    }
  }
  return true;
}

console.log(deepEqual(['1'], ['1']));