Entonces, tengo estos dos objetos:
const obj1 = { foo: 'Foo', bar: { baz: 'Baz', } } const obj2 = { foo: 'Foo', bar: { baz: 'Baz', zip: 'Zip' }, }Quiero eliminar "zip" de obj2 ya que no está en obj1. ¿Hay alguna manera de hacer esto con lodash?
EDITAR: si una propiedad es un objeto, será un objeto en ambos. No puede haber una cadena con la misma clave de un objeto en el otro.
El caso de uso es que tengo un archivo de traducción y después de algún procesamiento, necesito eliminar los que ya no son necesarios. Entonces, si los elimino en el objeto original (es decir, obj1), deben eliminarse de los otros (en este caso, obj2.
Si está abierto a usar bibliotecas adicionales, puedo recomendarle que busque en deep-diff :
const obj1 = { foo: 'Foo', bar: { baz: 'Baz', } } const obj2 = { foo: 'Foo', bar: { baz: 'Baz', zip: 'Zip' }, } DeepDiff.observableDiff(obj2, obj1, d => { DeepDiff.applyChange(obj2, obj1, d) }); console.log(obj1) console.log(obj2) <script src="https://cdn.jsdelivr.net/npm/deep-diff@1/dist/deep-diff.min.js"></script>