Supongamos que accedo a un determinado objeto que está dentro de un objeto, pero no sé cuál es la clave del objeto anterior, ¿hay alguna forma de obtener la clave del padre de este objeto?
Basically I would like to get the relative node of a property of an object
var house = { bedroom: { bed: 'I am a bed' } }
Tengo I'm a bed
, sé que su llave es la bed
, pero no sé si está en el bedroom
. ¿Hay alguna forma de llegar al bedroom?
con solo conocer bed
. Es similar a parentNode, pero como en los objetos.
Este es mi deseo : " bed.parentNode
result bedroom
" pero en objeto;
Una forma en que puede hacer esto es mientras itera a través del objeto, almacene la clave como una variable.
function recurseObject(obj, parentNode) { let result; if (typeOf obj !== 'object') { return } for(const key in obj) { if(//house[key] is the element you want the parent node of) { return parentNode } result = recurseObj(obj[key], key) } return result }
Esta función simplemente recurre a través de un objeto pasándole la clave anterior. Cuando encuentre el valor que desea para el nodo principal, simplemente devuélvalo. Si la lógica en el bloque if
no encuentra lo que desea, devolverá indefinido