Foros del Web » Programando para Internet » Javascript »

Recursividad en JavaScript...

Estas en el tema de Recursividad en JavaScript... en el foro de Javascript en Foros del Web. Saludos a todos, amigos: Por favor, necesito que alguien me saque de una tremenda duda: Es posible programar funciones recursivas en JavaScript??? (Es decir, funciones ...
  #1 (permalink)  
Antiguo 12/01/2002, 05:34
 
Fecha de Ingreso: abril-2001
Mensajes: 60
Antigüedad: 23 años
Puntos: 0
Recursividad en JavaScript...

Saludos a todos, amigos:

Por favor, necesito que alguien me saque de una tremenda duda: Es posible programar funciones recursivas en JavaScript??? (Es decir, funciones que puedan llamarse a si mismas, en forma anidada).

Desde ya, muchísimas gracias por su ayuda, Maestr@s.

Buena Suerte !!!

++++++++++++++++++
¿Sabes? Mientras mi PC trabaja... YO GANO DINERO !!!!!
Te gustaría saber cómo hacer lo mismo?? Visita mi
<A HREF="http://www.proyectomarket2000.com/cgi-bin/oficina.cgi?ID=119112">Oficina Virtual (click aquí)</A>
++++++++++++++++++
  #2 (permalink)  
Antiguo 12/01/2002, 07:23
Avatar de mikel_gomez  
Fecha de Ingreso: febrero-2001
Mensajes: 482
Antigüedad: 23 años, 2 meses
Puntos: 3
Re: Recursividad en JavaScript...

Si se pueden programar funciones recursivas en javascript.

Te dejo a continuación el típico ejemplo de función para cálculo de factoriales en forma recursiva y no recursiva.

<pre>// Función factorial recursiva.
function factorial1(numero) {
if (numero&gt;0)
return numero * (factorial1(numero - 1)) ;
else
return 1 ;
} </pre>

<pre>// Función factorial no recursiva.
function factorial2(numero) {
var resultado = 1 ;
for (i=1; i&lt;=numero; i++)
resultado = resultado * i ;
return resultado ;
} </pre>

Saludos

<style>.t{font: 8pt verdana; text-decoration: none; color: black;}</style><hr><span class="t"><a href="mailto:[email protected]" class="t" style="font: 10pt;">Mikel Gómez</a><br>Hay que aprender mucho para saber poco.</span>
  #3 (permalink)  
Antiguo 13/01/2002, 10:50
 
Fecha de Ingreso: abril-2001
Mensajes: 60
Antigüedad: 23 años
Puntos: 0
Re: Recursividad en JavaScript...

Muchísimas gracias por tu respuesta, Mikel. La función que me has dejado, por cierto que si funciona. Sin embargo, lo que me movió a postear esta pregunta fue lo siguiente: Yo programé una función recursiva (demasiado extensa para ponerla aquí), sin embargo la &quot;autollamada&quot;, por así decirlo, no estaba dentro de un bloque condicional if . La función se llamaba a sí misma sin ningún problema, pero resulta que, cuando retornaba de dicha autollamada, no continuaba con las instrucciones restantes.

De todos modos, ya resolví mi problema en forma no recursiva, pero siempre queda la curiosidad, no??

Nuevamente muchas gracias, y Buena Suerte !!!

++++++++++++++++++
¿Sabes? Mientras mi PC trabaja... YO GANO DINERO !!!!!
Te gustaría saber cómo hacer lo mismo?? Visita mi
<A HREF="http://www.proyectomarket2000.com/cgi-bin/oficina.cgi?ID=119112">Oficina Virtual (click aquí)</A>
++++++++++++++++++
  #4 (permalink)  
Antiguo 13/01/2002, 11:33
Avatar de Kaopectate
Colaborador
 
Fecha de Ingreso: diciembre-2001
Ubicación: Curaçao (Antillas Holandesas)
Mensajes: 3.179
Antigüedad: 22 años, 4 meses
Puntos: 38
Re: Recursividad en JavaScript...

¿Revisaste si la condición de parada se cumplía? me suena raro que la llamada recursiva no esté controlada por ningun &quot;if&quot;, quizás tu función esté haciendo infinitas llamadas recursivas. De cualquier modo, si lo resolviste iterativamente, ya no importa, pero la recursividad en JavaScript funciona muy bién.
  #5 (permalink)  
Antiguo 13/01/2002, 16:47
 
Fecha de Ingreso: abril-2001
Mensajes: 60
Antigüedad: 23 años
Puntos: 0
Re: Recursividad en JavaScript...

Muchas gracias, Kaopectate:

Si, ya veo, estoy más que seguro que la Recursividad si funciona en JavaScript. Seguramente, había un error en alguna parte de mi código anterior.

Muchas gracias a los dos, de todos modos, ya sé que para la próxima, si puedo utilizar esta poderosa herramienta.

Buena Suerte !!!

++++++++++++++++++
¿Sabes? Mientras mi PC trabaja... YO GANO DINERO !!!!!
Te gustaría saber cómo hacer lo mismo?? Visita mi
<A HREF="http://www.proyectomarket2000.com/cgi-bin/oficina.cgi?ID=119112">Oficina Virtual (click aquí)</A>
++++++++++++++++++
  #6 (permalink)  
Antiguo 07/02/2006, 07:00
Avatar de Necros  
Fecha de Ingreso: enero-2002
Ubicación: Catalunya
Mensajes: 431
Antigüedad: 22 años, 3 meses
Puntos: 0
Recursividad en javascript

Pues yo tengo un problema similar,

Atención:

Yo realizo unas búsquedas sobre unos inputs mediante un for, en el caso de encontrar cierto input, dentro del for llamo la misma llamada para que se ejecute a partir de este último id .

Resultado, cuando me encuentra uno de los inputs, llama de nuevo a la misma función, y empieza a contar de nuevo el for 0.. y hace de nuevo el tratamiento de forma correcta ...

El problema esta, quenunca vuelve al for inicial del código, que se quedo en un match por ejemplo a 3, y no acaba hasta el 7.Por lo que no realiza el tratamiento sobre el resto de inputs.


for(i=0;i<serveis_length;i++)
{ alert("parent "+parent+" for "+i);
if(serveis[i].parent==parent)
{ index_servei=i;
alert("tinc servei id:"+serveis[i].id+" parent:"+serveis[i].parent);
for(d=0;d<document.forms[0].elements["chkServeis"].length;d++)
{if(document.forms[0].elements["chkServeis"][d].value==serveis[index_servei].id)
{ alert("input:"+document.forms[0].elements["chkServeis"][d].value);
document.forms[0].elements["chkServeis"][d].checked=true;
checkServeis(serveis[index_servei].id);
}
}
}
}
__________________
By NeCrOS
FrEe WoRlD is FrEe CoDE
http://www.NeCrOS.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:58.