• Empleos
  • Sobre nosotros
  • profesionales
    • Inicio
    • Empleos
    • Cursos y retos
  • empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Nómina
    • Blog
    • Comercial
    • Calculadora de salario

0

117
Vistas
Maximum call stack size exceeded due to recursive function

I'm trying to populate data from an array through a recursive function, and this function would get called upon each time the data or search value is updated. I understand that to avoid call stack being exceeded a base case should be established, but in my case I thought I had that covered. I have also tried out using an increment counter to reset the call stack when it hits a certain value, but that didn't seem to work.

How can I avoid the maximum call stack issue from occurring? Any help is greatly appreciated, thanks.

const filteredTreeData = useMemo(() => {
    function getObjects(array, target) {
      return array?.reduce((r, { title, key, children = [] }) => {
          if (title.toLowerCase().includes(target.toLowerCase())) {
              // Check and loop their children
              if (children?.length) {
                getObjects(children, target)
              } else {
                r?.push({ title, key });
              }
          }
          else return;
          children = getObjects(children, target);
          if (children?.length) {
             r?.push({ title, key, children })
          }
          return r;
    }, []);
  }
  return search.length > 0 ? getObjects(treeData, search) : treeData
}, [treeData, search])
about 3 years ago · Juan Pablo Isaza
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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recomiéndame algunas ofertas
Necesito ayuda