Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

89
Vistas
Devuelve el objeto de una función recursiva que reorganiza la matriz de objetos literales

Tengo una función que toma un objeto literal como entrada. como resultado, debería devolver 2 matrices de objetos.

Es una función recursiva, por lo que el retorno ocurre en el n-ésimo ciclo de recursión con los siguientes datos:

 //code const filterObject = (object, array1 = null, array2 = null) => { let a1 = array1 === null?[]: array1; //array1 is passed as a part of recursion and when recursed is not null let a2 = array2 === null?[]: array2; //same here ... //some filtering and object manipulation to create **composedObject** ... if (condition x is met){ a1.push(composedObject) } if( condition y is met ){ a2.push(composedObject) ... //filtering out parts of initial object that were used //what is left is assembled into **untreatedObject** ... if (there are still parts of the initial object that are left untreated){ filterObject(untreatedObject, a1, a2); //here recursion happens and we pass these arrays there as well as they will continue to be populated } else if (everything is filtered and objects are ready){ console.log(a1) //values are present and correct console.log(a2) //values are present and correct return { a: a1, b: a2}; } /* where array1:[ { a: 1, b: 'skdfhkdj', c:[ { index:0, code :'red' }, { index:1, code :'redcwrg' } ] } ], array2:[ { a: 1, b: 'skdfhkdj', c:[ { index:2, code :'redaxac' }, { index:3, code :'reddd' } ] } ] */ const result = filterObject(object, null,null); console.log(result); //**gives undefined**.

PREGUNTA Cuando trato de llamar a esta función const result = filterObject(object, null,null) (null,null aquí están los valores iniciales para las matrices. Se asignan a [] al comienzo de la función y luego, cuando ocurre la recursión, se envían también para que se puedan alterar nuevas matrices)

y cuando lo registro, el resultado es del tipo "indefinido" y estoy seguro de que la función tiene los objetos en la matriz antes de que ocurra el return

Entonces, ¿dónde puedo estar equivocado?

Gracias por adelantado

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Falta una cosa de importación: su código no devuelve el objeto devuelto por una llamada recursiva. Solo tiene return para el caso base. Su código no realiza la devolución del otro caso recursivo.

Así que para dejarlo claro, necesitas

 return filterObject(untreatedObject, a1, a2);
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda