Foros del Web » Creando para Internet » Flash y Actionscript »

Eliminar filas de una matriz

Estas en el tema de Eliminar filas de una matriz en el foro de Flash y Actionscript en Foros del Web. Buenas tardes, estoy tratando de eliminar las primeras filas nulas que me encuentre en una matriz y colocarlas al final, por ejemplo : tengo 0 ...
  #1 (permalink)  
Antiguo 08/12/2010, 14:02
Avatar de dvpareja  
Fecha de Ingreso: junio-2010
Ubicación: Vélez-Málaga
Mensajes: 126
Antigüedad: 13 años, 10 meses
Puntos: 11
Eliminar filas de una matriz

Buenas tardes,

estoy tratando de eliminar las primeras filas nulas que me encuentre en una matriz y colocarlas al final, por ejemplo :

tengo

0 0 0 0 0
0 0 0 0 0
0 1 0 0 0
0 0 0 0 0
0 1 0 0 0

y quiero que me quede :

0 1 0 0 0
0 0 0 0 0
0 1 0 0 0
0 0 0 0 0
0 0 0 0 0

estoy trabajando con esta función :

Código actionscript:
Ver original
  1. private function posicionaFigura(tablero:Array):Array {
  2.          var bool:Boolean = false;
  3.          var tablero_copia: Array = new Array();
  4.          tablero_copia = tablero
  5.          // primero compruebo las filas, si todos los elementos son distintos de cero
  6.          for (var i:int = 0;i<5;i++) {
  7.             for (var j:int = 0;j<5;j++) {
  8.                if (tablero_copia[i][j] != 0) { bool = true }
  9.             }
  10.             // elimino la fila y la pego al final
  11.             if (bool == false) {  
  12.                var spliced:Array = tablero_copia[i].splice(0,5)
  13.                tablero_copia.push(spliced);
  14.             } // end if
  15.          } // end for i
  16.          return tablero_copia;

pero el resultado de aplicar esta función es:

[]
[]
0 1 0 0 0
0 0 0 0 0
0 1 0 0 0

¿Alguién puede decirme con hacer esto en AS3?

Muchas gracias

Etiquetas: eliminar, filas, matriz
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:56.