Foros del Web » Programando para Internet » Javascript »

Función que no me retorna valor a un Array.

Estas en el tema de Función que no me retorna valor a un Array. en el foro de Javascript en Foros del Web. Hola que tal!!!, soy nuevo por acá y me encuentro en una etapa de estudio de lenguaje de programación de Javascript, de hecho soy muy ...
  #1 (permalink)  
Antiguo 01/11/2015, 21:26
 
Fecha de Ingreso: octubre-2015
Ubicación: Venezuela
Mensajes: 1
Antigüedad: 9 años
Puntos: 0
Pregunta Función que no me retorna valor a un Array.

Hola que tal!!!, soy nuevo por acá y me encuentro en una etapa de estudio de lenguaje de programación de Javascript, de hecho soy muy nuevo en todo esto y estoy en esa etapa donde te das mas golpes que lujos de realizar códigos decentes jajaja, estoy realizando una practica que estoy complicando un poco para propósito de aprendizaje personal, pero tengo un problema y es que quiero crear un array que almacene numeros entre 5 y 10, y esto lo hice con una funcion que hace que me retorne numeros entre ese rango, la cosa es que no entiendo porque me retorna undefined

aqui el codigo.

var testArray = new Array();

function testFunction () {

return testArray.push(Math.floor(Math.random() * (10 - 5) + 5));
}


alert (testArray[0]);
  #2 (permalink)  
Antiguo 02/11/2015, 04:35
 
Fecha de Ingreso: enero-2013
Ubicación: Santa Fe, VT
Mensajes: 68
Antigüedad: 11 años, 9 meses
Puntos: 2
Respuesta: Función que no me retorna valor a un Array.

Buenas

nunca haces la llamada a testFunction, el codigo deberia quedar asi:
Código Javascript:
Ver original
  1. var testArray = new Array();
  2.  
  3. function testFunction () {
  4.  
  5. return testArray.push(Math.floor(Math.random() * (10 - 5) + 5));
  6. }
  7.  
  8. testFunction(); <<<<<<<<<<<<<<<< FALTA ESTO
  9.  
  10. alert (testArray[0]);
  #3 (permalink)  
Antiguo 02/11/2015, 09:37
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Función que no me retorna valor a un Array.

Además de lo que te dice molinasergio91, añado que, de esa forma, no vas a obtener un número aleatorio entre el 5 y el 10. Estás restando 10 menos 5 y luego sumas 5, con lo cual obtienes 10 y, por lo tanto, obtendrás un valor entre el 0 y el 9. Tendrías que sumarle 1 a la multiplicación que haces para que los valores estén entre el 1 y el 10.

Para este caso, como se trata de un rango corto, te conviene tener un array con dichos números y tomar un valor aleatorio del mismo.

Código Javascript:
Ver original
  1. function aleatorio(){
  2.     var array = [5, 6, 7, 8, 9, 10],
  3.         posicion = Math.floor(Math.random() * array.length);
  4.     return array[posicion];
  5. }
  6.  
  7. alert(aleatorio()); //Muestra el valor aleatorio tomado del array

Similar a tu algoritmo, se obtiene un elemento en el rango que va del cero al cinco y no hasta el seis, que es el total de elementos del array. Esto nos conviene ya que las posiciones del array van precisamente del cero al cinco, por lo que una vez que obtengamos el número aleatorio, podemos tomar al elemento del array que ocupe dicha posición.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #4 (permalink)  
Antiguo 02/11/2015, 11:18
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 16 años, 5 meses
Puntos: 1012
Respuesta: Función que no me retorna valor a un Array.

Prácticamente lo tienes hecho
Cita:
Math.floor( Math.random() * ( 1 + 10 - 5 ) ) + 5;
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}

Etiquetas: funcion, retorna, valor
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 10:19.