Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2015, 07:08
Avatar de yojose
yojose
 
Fecha de Ingreso: junio-2005
Mensajes: 6
Antigüedad: 19 años, 6 meses
Puntos: 0
error undefined validar array multidimensional (tree)

Hola. tengo un probolema recurrente al que no he podido encontrar solucion. Otilizo mucho los arrays multidimensionales para crear estructuras de datos. como por ejemplo:

Código:
var clientes=[
     cliente1:[nombre:Juan, ropa:[pantalones,camisa]],
     cliente2: [nombre:pepe]
]
El problema viene cuando intento acceder a una posicion del array no definido aun cuando hay una condicion previa. Pongo un ejemplo de codigo a ver si se entiende mejor:

Código:
var mirarRopa=false;

if(mirarRopa==true){
   var ropaCliente1=clientes.cliente1.ropa;
   var ropaCliente2=clientes.cliente2.ropa;
   var ropaCliente3=clientes.cliente3.ropa;
}
en este ejemplo aun teniendo la variable mirarRopa a false se producen dos errores de javascript:

Error clientes.cliente2.ropa is undefined
y Error clientes.cliente3 es undefined

la unica forma de solucionar esto seria:

Código:
var mirarRopa=false;

if(mirarRopa==true && clientes.cliente2.ropa!=undefined && clientes.cliente3!=undefined){
   var ropaCliente1=clientes.cliente1.ropa;
   var ropaCliente2=clientes.cliente2.ropa;
   var ropaCliente3=clientes.cliente3.ropa;
}
aun asi si no existiera ropa para algun otro cliente o no existiese ese cliente causaria un error.

Mi pregunta seria si no existe algun metodo mejor y menos engorroso para hacer esta validacion. Este es un ejemplo sencillo y sin mucha utilidad pero puede complicarse mucho. Gracias.