Tengo un dilema de qué caso es más eficiente.
Tengo una matriz de javascript con esta estructura.
elements = [ { id: 'uuid', children: [] } , { id: 'uuid', children: [] } , { id: 'uuid', children: [ { id: 'uuid', children: [] } , { id: 'uuid', children: [ { id: 'uuid', children: [] } , { id: 'uuid', children: [] } ] } , { id: 'uuid', children: [] } ] } ]Para encontrar un objeto en especifico tengo dos formas de trabajar, una es iterar cada elemento hasta encontrarlo y la otra es convertirlo a string y si el id existe en los children, entro al nodo
function findElementById(id_, elements){ for (el of elements){ if(el.id == id_) return el if(JSON.stringify(el.children).includes(id_)) return findElementById(id, el.children) } } function findElementById(id_, elements){ for (el of elements){ if(el.id == id_) return el if(el.children.length > 0) result = findElementById(id, el.children) if (result) return result } }Es eficiente convertir a cadena para evitar ingresar a nodos que no devolverán nada o en casos donde el objeto es muy grande, convertir a cadena usa muchos recursos.