Tengo un objeto como entrada con una estructura como esta: (básicamente un objeto anidado simple)
const test ={ id: "0000", parent1 : "foo", parent2: { child1: "data1", child2: "data2", child3: "data3" }, parent3: { child1: "data1", child2: "data2", child3: "data3" } } Este objeto test tiene algunos valores vacíos y el propósito del código es recorrer el objeto y encontrar propiedades con valores.
const update = {}; for(const key in test){ if(test[key] !== ""){ update[key] = test[key]; console.log(update); } }; El bucle funciona bien para encontrarlos. Pero cuando encuentra un hijo, lo guarda así, por ejemplo, {child: "data2"} y no guarda el nombre del padre.
¿Cómo es posible modificar este código y evitar demasiadas condiciones if/else, básicamente un código optimizado, cuando se tiene un objeto como este?
{ id: "foo", parent1 : Null, parent2: { child1: Null, child2: "data2", child3: Null }, parent3: { child1: Null, child2: Null, child3: "data3" } }Un resultado como este:
{ id: "foo", parent2.child2: "data2", parent3.child3: "data3"]o más probablemente algo como esto:
{ id: "foo", parent2:{child2: "data2"}, parent3:{child3: "data3"}}