Comunidad de diseño web y desarrollo en internet online

quitar elementos de array

Citar            
MensajeEscrito el 28 Nov 2008 06:12 pm
tengo un array inicial

array_1 = [12,15,17,19,21,23,24,26,28,29,31,33,34,36,38,41,42,44,46,47,52,53,56,57,59];

por metodos voy sacando los elementos
if(algo) {
va formando un nuevo array

array_2 = [21,23,24,26,28,29,31,33,34,36,38];
aqui ya saque los comprendidos del 20 al 30.. estan deshabilitados!

pero como consigo volver a habilitar los que aun quedan?
digamos un 3er array_3 = [12,15,17,19,41,42,44,46,47,52,53,56,57,59];

me quedan los 1 al 10, y 40 al 50, suponiendo

digamos que:
array_1 = [12,15,17,19,21,23,24,26,28,29,31,33,34,36,38,41,42,44,46,47,52,53,56,57,59];
saque elementos usando slice(deTal, aTal);
array_2 = [...............,21,23,24,26,28,29,31,33,34,36,38........................................];
...pero como obtengo estos?
array_3 = [12,15,17,19,...........................................41,42,44,46,47,52,53,56,57,59];

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Nov 2008 06:23 pm
podrias ir formando los 2 con el mismo if

if(algo){
array_2
}else{
array 3
}

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 28 Nov 2008 08:54 pm
El problem es k los extraigo antes con slice una submatriz, no funciona con este if q me dices xq seria ir comparando uno a uno

Estoy intentando hacer como bucle for anidado otro for ir leyendo y si no esta entonces pasarlo a un nuevo array, quizas algo como lo que mencionas:

Código PHP :

      for (var u=0; u<inputCool.length; u++)
      {
      var subarrayItem = inputCool[u];
         for (var z=0; z<inputObj.length; z++)
         {
         var arrayItem = inputObj[z];
         if (subarrayItem==arrayItem)
         {
         trace (arrayItem + ' ya esta en la submatriz');
         // break;
         } else {
         trace (arrayItem + ' NO ESTA AUN!!');
         stillTabs.push(arrayItem);
         break;
         }
         }
      }

...pero no logro aun, alguna sugerencia? :(

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Nov 2008 10:07 pm
pon el codigo con el que sacaste el array2

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 01 Dic 2008 09:16 pm
Hola de nuex. Me tarde un poco en ordenar este desorden pero trate de ponerlo lo mas entendible posible

Código PHP :

var inputObj:Array = new Array(11,12,13,14,15,16,
                        21,22,23,24,25,26,
                        31,32,33,34,35,
                        41,42,43,44,
                        51,52,53,54,55,56,57);
var inputCool:Array = new Array();
var coolStringMan:Array = new Array();
var stillTabs:Array = new Array();



var epa = '11,12,13,14,15,16,41,42,43,44'; // Vienen como cadena
// p.e. en otras ocasiones puede ser 21,22,23,24,25,26,41,42,43,44
//      en otras 31,32,33,34,35,51,52,53,54,55,56,57, etc...
var my_str:String = epa.toString(); // ...Valga la rebusnancia, je!
trace ('epa: ' + epa + ', my_str: ' + my_str + ', son cadenas (' + typeof(epa) + ')');
var coolStringMan:Array = my_str.split(","); // Bueno, convierto String -> Array
trace ('-------------------------------------------');
trace (epa + ', de ser String -> split(","),' + newline + 'ahora ' +
      coolStringMan.join() + '... ya son ' + newline + 
      coolStringMan.length + ' vectores en ' + typeof(coolStringMan) + newline + 
      '-------------------------------------------');

// Bueno, va a tomar 1x1 c/index de la matriz coolStringMan y lo va a comparar
// con el valor de c/ude los vectores del original -> inputObj
for (var c = 0; c<coolStringMan.length; c++) {
   // aqui otras cosas ... y luego 
   // inputCool es un almacenador de coolStringMan
   // al final este valdra = inputObj (el original)
   inputCool.push(coolStringMan[c]);
}
inputCool.sort(Array.NUMERIC);
trace(inputCool.length+" TABS DESHABILITADOS --> "+inputCool.join());

// AHORA, Buscar los aun taxindexeables  :)
stillTabs.splice(0, stillTabs.length);
//
//
// AQUI :: AQUI :: AYUDA!
//
// Ahora tiene que buscar en inputObj estos deshabilitados (inputCool) y si no estan meterlos
// a otro nueva matriz que se crrea provisional para ver cuantos quedan aun habilitados
// For(1) Recorre el array de los que ya se deshabilitan, compara con cada posicion de los totales
trace('TOTALES AUN --> '+ stillTabs.length + ': ' + stillTabs.join()); // Una pruebita
for (var u = 0; u<inputCool.length; u++) {
   var subarrayItem = inputCool[u];
   for (var z = 0; z<inputObj.length; z++) {
      var arrayItem = inputObj[z];
      if (subarrayItem == arrayItem) {
         trace(arrayItem+' ya esta en la submatriz');
         // break;
      } else {
         trace(arrayItem+' NO ESTA AUN!!');
         stillTabs.push(arrayItem);
         break;
      }
   }
}
trace('TOTALES AUN --> '+stillTabs.length + ': ' + stillTabs.join()); // otra vez la prueba

Bueno la idea es que al final en la matriz: stillTabs queden los que aun no estan dentro de inputCool

¡Mas claro queel agua (turbia) no puedeestar! Jejeje... :shock: xfa! un cable que me echien sera de GRAN AYUDA :lol:

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Dic 2008 10:06 pm
ijos! ya...

Código PHP :

// Ahora tiene que buscar en inputObj estos deshabilitados (inputCool) y si no estan meterlos
// a otro nueva matriz que se crrea provisional para ver cuantos quedan aun habilitados
// For(1) Recorre el array de los que ya se deshabilitan, compara con cada posicion de los totales
trace('TOTALES AUN --> '+ stillTabs.length + ': ' + stillTabs.join()); // Una pruebita

for (var u = 0; u<inputCool.length; u++) { // Agarra los que van
   var subarrayItem = inputCool[u];
   for (var z = 0; z<stillTabs.length; z++) { // Los busca 1X1 en el total
      var arrayItem = stillTabs[z];
      if (subarrayItem == arrayItem) {
         var adios = stillTabs.splice(z,1);
         trace(arrayItem+' ya esta en inputCool, vector:' + u + ', quitar de stillTabs -> ' + adios + '... ' + stillTabs.length);
         break;
      }
   }
}

trace('TOTALES AUN --> '+stillTabs.length + ': ' + stillTabs.join());


Salu2! :D ;)

Por comicSans

Claber

151 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Dic 2008 10:55 pm
for (var z = 0; z<inputObj.length; z++) {
var arrayItem = inputObj[z];
comprueba = "no";
for (var u = 0; u<inputObj.length; u++) {
var subarrayItem = inputCool[u];
if (subarrayItem == arrayItem) {
comprueba = "si";
}
}
if (comprueba == "si") {
trace(arrayItem+' ya esta en la submatriz');
// break;
} else {
trace(arrayItem+' NO ESTA AUN!!');
stillTabs.push(arrayItem);
}
}

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 01 Dic 2008 10:58 pm
ok quita la linea
stillTabs.splice(0, stillTabs.length);
y cambia lo que t puse arriba

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 02 Dic 2008 05:48 pm
Excelente!, Gracias :cool:

Por comicSans

Claber

151 de clabLevel



 

firefox

 

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