Comunidad de diseño web y desarrollo en internet online

Valor sin asignar

Citar            
MensajeEscrito el 05 Feb 2007 09:31 pm
No entiendo como es posible que salga ese trace, si aun no se le asigno ningun valor a clave2.

Código :

var aArray:Array = new Array();
aArray[clave1] = 1;
trace(typeof aArray[clave2]);// number
[/quote]

Por oxk4r

56 de clabLevel



 

Orense·España

firefox
Citar            
MensajeEscrito el 05 Feb 2007 11:40 pm
Por que tampoco defines que es "clave1"

Código :

aArray[clave1] == aArray[undefined]
aArray[clave2] == aArray[undefined] 

por lo tanto:

Código :

var aArray:Array = new Array();
aArray[undefined] = 1;
trace(aArray[undefined]); //1
trace(typeof aArray[undefined]); //Number

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 06 Feb 2007 08:06 am
Tienes razon, si defino el valor de clave1:

Código :

var aArray:Array = new Array();
var clave1:String = "palabro;"
aArray[clave1] = 1;
trace(typeof aArray[clave2]);// undefined

Pero, eso, ¿no es un error por parte de Flash,? porque entiendo que la salida deberia ser undefined.
Ademas, si hago lo mismo, pero definiendo solo el tipo de dato:

Código :

var aArray:Array = new Array();
var clave1:String ;
aArray[clave1] = 1;
trace(typeof aArray[clave2]);// number

¿Por que influye asi un valor sobre el otro?

Por oxk4r

56 de clabLevel



 

Orense·España

firefox
Citar            
MensajeEscrito el 06 Feb 2007 11:30 am

oxk4r escribió:

Pero, eso, ¿no es un error por parte de Flash,? porque entiendo que la salida deberia ser undefined.

No.

El problema es que no utilizas correctamente el Array. Un Array es un listado de elementos.

Código :

aArray = ["uno","dos","tres"]


y de ahi puedes sacar los elementos segun su posición

Código :

trace(aArray[0]); //--> "uno"
aArray[0] = "cuatro"
trace(aArray[0]); //--> "cuatro"


pero si la posicion que le estas asignando un valor a una posicion undefined.

Código :

var aArray:Array = new Array();
var clave1:String; //--> defines clave1 como variable string, ok
trace(clave1); //--> No le has asignado ningún valor! devuelve UNDEFINED
aArray[clave1] = 1; //--> por lo tanto asignas el valor 1 en la posición UNDEFINED
trace(clave2); //--> clave2 tampoco tiene ningún valor, tambien es UNDEFINED
trace(aArray[clave2]); //--> por lo tanto devuleve el valor de la posición UNDEFINED osea 1
trace(typeof aArray[clave2]); //--> el typeof de la posicion UNDEFINED es number

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

opera
Citar            
MensajeEscrito el 06 Feb 2007 05:00 pm
Voy a usar ahora un array asociativo, que es el tema que yo en realidad estoy tratando de entender:

Código :

var oObject:Object = new Object();
oObject[clave1] = "mBola";
// Es como decir oObject[undefined] = "mBola"
oObject[clave2] = "mCuadrado";
// Es como decir oObject[undefined] = "mCuadrado"
trace(oObject[clave1]);// mCuadrado
// Usease, trace(oObject[undefined]);

// Pero entonces...  ¿Por que este trace no devuelve true?
trace(oObject[clave2] == undefined);// false

Por oxk4r

56 de clabLevel



 

Orense·España

firefox
Citar            
MensajeEscrito el 06 Feb 2007 05:42 pm
:cry:

Porque lo que es undefined no es oObject[clave2], lo que es undefined es clave2!!

Código :

trace(clave2); //--> undefined
trace(oObject[clave2]); //--> mCuadrado
trace(clave2 == undefined); //--> true
trace(oObject[clave2] == undefined); //--> false

Por Zguillez

BOFH

10744 de clabLevel

85 tutoriales
17 articulos
3 ejemplos

Genero:Masculino   Bastard Operators From Hell Héroes Team Cristalab Editores

BCN

firefox
Citar            
MensajeEscrito el 06 Feb 2007 06:37 pm
Vale, Zguillez, gracias por tu paciencia. De todas formas el asunto este de los arrays asociativos y el operador de acceso a array [ ], que si lleva comillas, que si no las lleva... a mi personalmente me resulta un poco confuso. Molaria algun tutorial.
:wink:
Pos eso: gracias tron.

Por oxk4r

56 de clabLevel



 

Orense·España

firefox

 

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