Comunidad de diseño web y desarrollo en internet online

No puedo operar un valor de un array !

Citar            
MensajeEscrito el 10 Jun 2009 04:34 pm
HOla a todos,

eh estado buscando la forma de organizar un arreglo con valores aleatorios sin que se repitan del 1 al 11, lo encontré y les comparto el codigo mas abajo, aquí ya se habia comendo algo sobre el tema , aqui, el dilema mio es que ya una vez desordenados los numeros en el Array pos quisiera hacer operaciones con ellos, como por ejemplo multipicarlos, el codigo:

Código ActionScript :

var random_entre:Function = function (minimo:Number, maximo:Number):Number {
return Math.round(Math.random()*(maximo-minimo))+minimo;
};
//el array con los números
var los_numeros:Array = new Array();
var secuencia:Array = new Array();

for (var n = 1; n<=11; n++) {
   los_numeros.push(n);
}//mientras aún haya elementos en el array, tomamos uno al azar y lo eliminamos
while (los_numeros.length>0) {
   secuencia.push(los_numeros.splice(random_entre(0, los_numeros.length-1), 1));

}//---------------->

trace(secuencia);


quisiera hacer algo como : trace (secuencia[1]*50);
pero el resultado es NAN :shock:
Como hago para saber ke el valor del arreglo es numerico o String ??
si es string como lo convierto a nummerico para poderlo multiplicar..

espero haya sido claro y gracias desde ya con la ayudita que me puedan dar...

Por spke

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Jun 2009 11:10 am
Flash usa conversión automática, aunque siempre es posible usar un cast: Number(miVariable)
Estás trazando secuencia ... ¿la salida es correcta?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2009 02:31 pm
De hecho el arreglo tiene los valores bien...
intente hacerlo con Number(expresion); en la asignación de los valores pero nada...

Por spke

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Jun 2009 03:18 pm
Entonces esto debería dar un valor numérico

var tot:Number = Number(secuencia[1])*50;
trace(tot)

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2009 03:29 pm
si "debería" pero no.... es lo que me pone a pensar ...
no se si probaste el código que puse tal cual ??
no se a mi no me funciona, ojala sea algo simple...y lo descubra pronto..

Por spke

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Jun 2009 04:38 pm
Vale, no lo probé literal con tu código. El problema es que splice devuelve un array que luego hace fallar el cast a Number, modifica estas línea:

Código ActionScript :

while (los_numeros.length>0) { 
   secuencia.push(los_numeros.splice(random_entre(0, los_numeros.length-1), 1)[0]); 
}//----------------> 
trace(secuencia)
trace(secuencia[0]*50)


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2009 05:19 pm
ooohhh!!
muchas muchas gracias....

por ultimo podrías explicarme en que estaba fallando?? es solo como por no irme con la duda :P

Por spke

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Jun 2009 05:20 pm
ooohhh!!
muchas muchas gracias....

por ultimo podrías explicarme en que estaba fallando?? veo un [0], pero no se en que afecta.. es solo como por no irme con la duda :P

Por spke

15 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Jun 2009 05:30 pm
Ok, lo descompongo así se entiende mas fácil:

Código ActionScript :

while (los_numeros.length>0) {  
  //splice devuelve un array, no se puede hacer un cast a Number
  var nr:Array = los_numeros.splice(random_entre(0, los_numeros.length-1), 1)
   //se que es un array de un solo elemento, así que lo paso directamente 
   secuencia.push(nr[0]);  
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.