¿Cómo puedo usar lodash para verificar en profundidad la igualdad de dos objetos, ignorando undefined?
es decir
const a = { a: 1, b: 2 }; const b = { a: 1 }; _.isEqual(a, b); // => truePuede usar _.isMatch() que realiza una comparación profunda parcial entre el objeto ( a ) y la fuente ( b ) para determinar si el objeto contiene valores de propiedad equivalentes a la fuente.
const a = { a: 1, b: 2 }; const b = { a: 1 }; console.log(_.isEqual(a, b)); // false console.log(_.isMatch(a, b)); // true console.log(_.isMatch(b, a)); // false <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> Esto solo funcionaría si no existe una clave en la fuente. Si existe una clave con un valor explícito de undefined , el resultado sería falso.
const a = { a: 1, b: 2 }; const b = { a: 1, c: undefined }; console.log(_.isMatch(a, b)); // false <script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js" integrity="sha512-WFN04846sdKMIP5LKNphMaWzU7YpMyCU245etK3g/2ARYbPK9Ub18eG+ljU96qKRCWh+quCY7yefSmlkQw1ANQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>