JavaScript - Arreglos multidimencionales

 
Vista:
sin imagen de perfil

Arreglos multidimencionales

Publicado por Rolando (14 intervenciones) el 11/06/2010 19:11:12
Señores, nunca me había encontrado con la necesidad de hacer un arreglo multidimencional en JS, y hoy tengo que hacerlo, vi algunas ayudas, y hice lo siguiente:

// LISTA DE MIN/MAX POR MONEDA/METODO:
var monedas = new Array("CLP", "ARS", "UYU", "MXN", "PEN", "COP", "VEF", "USD", "EUR");
var metodos = new Array("Visa", "Mast", "Tran", "Barc", "Nete");
var minmaxs = new Array("min", "max");

var minmax = new Array(monedas, metodos, minmaxs);
// CLP
minmax["CLP"]["Visa"]["min"] = "5.000";

El problema es que me lanza un error, y firefox dice:
minmax.CLP is undefined

En la última linea del código que les pego...

Cual es el problema?? por favor, es urgente.

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

RE:Arreglos multidimencionales

Publicado por albatrosx9 (5 intervenciones) el 11/06/2010 19:48:38
Crea mejor un objeto que contega arrays de esta forma siento que mas facil de manejarlos.

var tuobjeto = new Object( )
tuobjeto.monedas = new Array("CLP", "ARS", "UYU", "MXN", "PEN", "COP", "VEF", "USD", "EUR");
tuobjeto.metados = new Array("Visa", "Mast", "Tran", "Barc", "Nete");
tuobjeto.minmaxs = new Array("min", "max");


al mandarlos llamar seria

tuobjeto.monedas[0]; //CLP
tuobjeto.metodos[0]; //Visa
tuobjeto.minmaxs[0]; //min
tuobjeto.valor = "5,000"
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
sin imagen de perfil

RE:Arreglos multidimencionales

Publicado por Rolando (14 intervenciones) el 11/06/2010 20:44:44
No entendí mucho... está bien lo de los objetos, pero necesito que sean arreglos asociativos... osea que pueda asignar un valor así:

tuobjeto["clp"]["visa"]["min"] = "2.000";

Y tambien consultarlo de la misma forma... me explico???

Gracias
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

RE:Arreglos multidimencionales

Publicado por Andres (20 intervenciones) el 14/06/2010 22:08:04
Hola Rolando, albatrosx9 está en lo cierto, se deben utilizar objetos, javascript no utiliza arreglos o matrices asociativas.

Prueba lo siguiente:

<script>

// Objeto
var minmax = {};

// Creo propiedades del objeto y cargo valores
setVal("USD","VISA","MIN",5000);

// obtengo valor con getVal()
alert("valor = " + getVal("USD","VISA","MIN"));


// Funciones -------

// Crea objeto y asigna valores
function setVal(mon,met,mm,val){
eval("minmax={" + mon + ":{" + met + ":{" + mm +":" + val + "}}};");
}

// obtiene valores del objeto
function getVal(mon,met,mm){
try{
return minmax[mon][met][mm];
}catch(e){
alert("valor no encontrado");
return 0;
}
}

</script>

Espero que se entienda y solucione tu problema
saludos

Andrés
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
sin imagen de perfil

RE:Arreglos multidimencionales

Publicado por Rolando (14 intervenciones) el 14/06/2010 22:18:21
Gracias señores... a ambos por su ayuda...

La verdad es que ya había solucionado el tema así, usando ese tipo de nomenclatura con {"abc": "def", .... etc } y funciona bastante bien.

Sorry por no haberlo dicho antes, pero es que me fui de viaje sin internet, y no podía responder hasta ahora.

El código que me acabas de entregar está perfecto para crear dinámicamente las matrices.

Muchas gracias a ambos
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