Comunidad de diseño web y desarrollo en internet online

Manejo de Matrices bidimensionales

Citar            
MensajeEscrito el 10 Ago 2006 06:42 pm
..O como se llamen (no he visto esto muy a fondo en la U)
La verdad es que acostumbro utilizar archivos csv para guardar datos, algo parecido al XML, solo que más fácil de crear (a mi parecer, he hecho las dos cosas) y utilizando arrays, pues se me hace muy cómodo manejarlos, el único problema es que dependo de la cantidad de columnas que un csv tenga, y así mismo debo editar el código para cada csv por separado.

Lo que quisiera saber es como puedo asignar datos a un array multidimensional o, para hacerme entender mejor, de los que tienen la forma: array[0][5]
asignarlos, lo hago bien, pero quisiera utilizar algo parecido al array.push(), pero que me añadiera el elemento como otra columna en una fila determinada del array, algo así:

Código :

var arreglo:Array = new Array();
arreglo[0]=[dato1,dato2,dato3];

pero que yo pueda seguir añadiendo con un ciclo, cuantos "datoX" quiera.

Alguien sabe si se puede? o tendré que trabajar AS3.0 ?

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 11 Ago 2006 12:48 am
algo super sencillo que hice, SIN muchas validaciones ni nada, pero es una demostracion:

Código :

var  Matrix:Array = new Array();

function addRow ( ){
   Matrix.push([]);
}
function addColumn(row:Number, val){
   Matrix[row].push(val)
}

addRow();
addRow();
addColumn(0,1);
addColumn(0,1);

trace(Matrix[0][1]);

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 11 Ago 2006 03:34 am
Osea que el código que hace el verdadero truco es

Código :

Matrix.push([]);
Matrix[row].push(val)
nunca había visto el método push usado de esa forma, no aparece en la ayuda por lo menos.
Muchisimas gracias, funciona de maravillas, solo por curiosidad, donde aprendiste a hacer eso, digo, porque no aparece en la ayuda de flash... algúna lectura que pudieras recomendarme para aprender esos métodos "escondidos" ??

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox
Citar            
MensajeEscrito el 11 Ago 2006 01:02 pm
naaa, en verdad solo intui, array es la clase que mas se acerca a la object asi que la puedes manipular facilmente, y como sabes puedes almacenar casi que cualquier valor.

Es verdad lo que dices hay metodos "escondidos" que no estan documentados o mejor dicho no lo documentan con todo su potencial, el secreto es ser lo suficientemente FREAK( o al menos tener uno cerca :lol: ) para hacerlo, naaa en serio hay que ser FREAK, google tambien ayuda a veces

Aunque push si esta documentado, igual que pop que hace lo contrario.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 11 Ago 2006 04:12 pm
Yo también hice algo similar: un arreglo de arreglos, o sea un matriz. Puedes verlo aquí: http://www.cristalab.com/foros/viewtopic.php?t=27166.

Básicamente se trata de hacer una matriz “n x m”, es decir "n" columnas por "m" filas. Para esto puedes definir un ciclo (“for” en mi caso) que recorra cada fila, y luego otro ciclo dentro del primero que recorra columna por columna. En otras palabras un ciclo for (var i: = 0; i<numFil; i++) y otro for (var j: = 0; j<numCol; j++) . Como el primero contiene al segundo, éste va mas lento, es decir primero recorres todas las columnas y luego pasas a la fila seguiente.
El puntero o indicador de donde estoy en la matriz sale de la combinación de las variables “i” y “j”, las cuales están en los ciclos. Por ejemplo si i= 1 y j= 2, estarás ubicado en la posición columna 2 y fila 1 (arreglo[j][i]). Debes tener cuidado con estos números, al decir fila 1 realmente se está hablando de la fila 2. La razón es, en los arreglos el primer campo es el 0 y no el 1. Un arreglo de 3 campos, puedes acceder a ellos en la posición 0,1 y 2 (arreglo[0], arreglo[1] y arreglo [2]]). Es un pequeño detalle.

Espero que esto te ayude.

Saludos

Por Costa

16 de clabLevel



 

msie
Citar            
MensajeEscrito el 11 Ago 2006 04:53 pm
Pues la verdad, me aclara algunas otras cosas, pero basicamente, la ayuda de Maikel fué definitiva para terminar lo que quería, si supiera como hacer un componente lo crearía, tal vez lo ponga después en aportes.
Gracias a todos.

Por Xyrer

628 de clabLevel

1 tutorial

Genero:Masculino  

Android App Development

firefox

 

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