JavaScript - Array de funciones

   
Vista:

Array de funciones

Publicado por Vanesa (1 intervención) el 17/09/2016 19:57:00
Hola, tengo un problema con un código de javascript. A ver si podéis ayudarme:
- En primer lugar tengo un botón que llama a una función:
1
<button onclick="miFuncion()">Clic</button>
- Esa función tiene el siguiente código:
1
2
3
4
5
function miFuncion() {
  var funciones = [f0,f1,f2];
  var Aleat = parseInt(Math.random()*funciones.length);
  funciones[Aleat](); //Aqui esta el error
}
Como puede leerse, defino un array (llamado funciones) que contiene unas funciones (f0, f1 y f2).
Después defino un número aleatorio para escoger f0, f1 ó f2, e intento llamar a dicha función en la cuarta línea. Ahí es donde no me funciona el código.
Tal y como yo lo veo, si por ejemplo, Aleat = 2; entonces funciones[Aleat] se cambiaría por f2 y la línea cuarta llamaría a f2();

¿Cómo lo veis?
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Array de funciones

Publicado por xve (1774 intervenciones) el 18/09/2016 10:03:01
Hola Vanesa, para ello, una manera es utilizando la función eval() para evaluar el contenido de una cadena... algo así:

1
eval(functiones[Aleat]+"()");
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas

Array de funciones

Publicado por Vainas (258 intervenciones) el 18/09/2016 16:09:38
Buenas: Yo lo veo bien y he hecho una prueba y me funciona.

No creo que debas usar eval como dice xve, en muchos foros suelen decir que es malo hacerlo con eval....

Yo creo que puede venir quizas de que tengas que declarar las funciones antes de la llamada o quizas el navegador....

Si tu navegador suelta algun error lo podrias dejar aqui.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar