Foros del Web » Programando para Internet » Javascript »

Orden de un Array en Firefox problema

Estas en el tema de Orden de un Array en Firefox problema en el foro de Javascript en Foros del Web. Hola tengo un Array con Array's en algunas posiciones, el tema es que cuando lo recorro con IE lo hace en el orden que fue ...
  #1 (permalink)  
Antiguo 04/11/2009, 04:45
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Orden de un Array en Firefox problema

Hola tengo un Array con Array's en algunas posiciones, el tema es que cuando lo recorro con IE lo hace en el orden que fue creado correctamente y si lo hago con FireFox me lo muestra en cualquier orden....

Codgo que uso:
comboDestino es un objeto que voy cargando para que luego el cliente seleccione.

Asi cargo el array...

matriz[1] = new Array();

matriz[1][72]="Apartamentos";
matriz[1][71]="Casas";
matriz[1][17]="Viviendas en Balnearios";
matriz[1][25]="Apto. C/Muebles";
matriz[1][382]="Casas C/Muebles";
matriz[1][31]="Campos Chacras y Quintas";
matriz[1][30]="Otros Alquileres Ofrecidos";
matriz[1][18]="Otros Alquileres Pedidos";


Y asi hago la busqueda y lo voy cargando en un combo..

i=0;
for (id in matriz[1]){
alert(matriz[1][id],id);
comboDestino.options[i] = new Option(matriz[1][id],id);
i++;}


En IE tengo este Resultado:
Apartamentos
Casas
Viviendas en Balnearios
Apto. C/Muebles
Casas C/Muebles
Campos Chacras y Quintas
Otros Alquileres Ofrecidos
Otros Alquileres Pedidos



En FireFox tengo este Resultado DESORDENADO
Viviendas en Balnearios
Apto. C/Muebles
Casas
Apartamentos
Casas C/Muebles
Campos Chacras y Quintas
Otros Alquileres Ofrecidos
Otros Alquileres Pedidos


Muchas gracias y espero alguien me pueda dar una mano.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.

Última edición por mdavila; 04/11/2009 a las 09:40
  #2 (permalink)  
Antiguo 04/11/2009, 06:48
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Orden de un Array en Firefox problema

el problema es que al parecer firefox lo está ordenando según su índice y no su contenido
  #3 (permalink)  
Antiguo 04/11/2009, 06:49
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Orden de un Array en Firefox problema

Creo que quizás los arrays con índice numérico te convenga tratarlos como arreglos donde el índice es automático. Si lo que quieres se parece más a un array asociativo (ya que los índices en realidad son datos, en este caso ids) supongo que te conviene pensar más en un "objeto" (aunque los arrays en última instancia sean objetos):
Código javascript:
Ver original
  1. var matriz=new Array();
  2. matriz[1]=new Object();
  3. matriz[1].72="Apartamentos";
  4. matriz[1].71="Casas";
  5. matriz[1].17="Viviendas en Balnearios";
  6. matriz[1].25="Apto. C/Muebles";
  7. matriz[1].382="Casas C/Muebles";
  8. matriz[1].31="Campos Chacras y Quintas";
  9. matriz[1].30="Otros Alquileres Ofrecidos";
  10. matriz[1].18="Otros Alquileres Pedidos";
  11. for(var id in matriz[1])
  12. {
  13.     alert(matriz[1][id]+', '+id);
  14. }
No te garantizo que esto funcione, sólo se me ocurrió. Por qué Firefox elige ese orden no sabría explicarlo. Espero haber sido de ayuda. ¡Suerte!
  #4 (permalink)  
Antiguo 04/11/2009, 06:49
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Orden de un Array en Firefox problema

Cita:
Iniciado por maycolalvarez Ver Mensaje
el problema es que al parecer firefox lo está ordenando según su índice y no su contenido
Pero no en todos los casos, ya que solo me trunca "Casas" y "Apartamentos" por otros dos
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #5 (permalink)  
Antiguo 04/11/2009, 07:03
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Orden de un Array en Firefox problema

Cita:
Iniciado por dggluz Ver Mensaje
Creo que quizás los arrays con índice numérico te convenga tratarlos como arreglos donde el índice es automático. Si lo que quieres se parece más a un array asociativo (ya que los índices en realidad son datos, en este caso ids) supongo que te conviene pensar más en un "objeto" (aunque los arrays en última instancia sean objetos):
Código javascript:
Ver original
  1. var matriz=new Array();
  2. matriz[1]=new Object();
  3. matriz[1].72="Apartamentos";
  4. matriz[1].71="Casas";
  5. matriz[1].17="Viviendas en Balnearios";
  6. matriz[1].25="Apto. C/Muebles";
  7. matriz[1].382="Casas C/Muebles";
  8. matriz[1].31="Campos Chacras y Quintas";
  9. matriz[1].30="Otros Alquileres Ofrecidos";
  10. matriz[1].18="Otros Alquileres Pedidos";
  11. for(var id in matriz[1])
  12. {
  13.     alert(matriz[1][id]+', '+id);
  14. }
No te garantizo que esto funcione, sólo se me ocurrió. Por qué Firefox elige ese orden no sabría explicarlo. Espero haber sido de ayuda. ¡Suerte!
Gracias pero no me funciono....
No se porque solo me trunca dos item's de la martiz
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #6 (permalink)  
Antiguo 04/11/2009, 07:32
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Orden de un Array en Firefox problema

Tienes razón, no funciona... es por una limitación de la notación por puntos. Probé anotándolo como JSON y funcionó:
Código javascript:
Ver original
  1. var matriz=new Array();
  2. matriz[1]={72: 'Apartamentos', 71: 'Casas', 17: 'Viviendas en Balnearios',  25: 'Apto. C/Muebles', 382: 'Casas C/Muebles', 31: 'Campos Chacras y Quintas', 30: 'Otros Alquileres Ofrecidos', 18: 'Otros Alquileres Pedidos'};
  3. for(var id in matriz[1])
  4. {
  5.     alert(matriz[1][id]+', '+id);
  6. }
Disculpa por haberte pasado un código inútil. ¡Suerte!
  #7 (permalink)  
Antiguo 04/11/2009, 07:59
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Orden de un Array en Firefox problema

Cita:
Iniciado por dggluz Ver Mensaje
Tienes razón, no funciona... es por una limitación de la notación por puntos. Probé anotándolo como JSON y funcionó:
Código javascript:
Ver original
  1. var matriz=new Array();
  2. matriz[1]={72: 'Apartamentos', 71: 'Casas', 17: 'Viviendas en Balnearios',  25: 'Apto. C/Muebles', 382: 'Casas C/Muebles', 31: 'Campos Chacras y Quintas', 30: 'Otros Alquileres Ofrecidos', 18: 'Otros Alquileres Pedidos'};
  3. for(var id in matriz[1])
  4. {
  5.     alert(matriz[1][id]+', '+id);
  6. }
Disculpa por haberte pasado un código inútil. ¡Suerte!
MAESTRO!!!

Me estaba volviendo loquito ya jajaja

Muchas gracias de verdad.
Saludos.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.

Última edición por mdavila; 04/11/2009 a las 09:40
  #8 (permalink)  
Antiguo 23/11/2009, 06:55
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Orden de un Array en Firefox problema

Hola de nuevo, me funciona bien en todos menos en google chromeeeeeeeeeeee ahhhh me quiero mataaaaaaaaaaaaarrrrr

Alguien tiene mas ideas?

Muchas gracias.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #9 (permalink)  
Antiguo 23/11/2009, 07:40
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Orden de un Array en Firefox problema

no puedes fiarte en el bucle de for/in porque esa es una de las virtudes de este bucle, el orden de los elementos nunca esta determinado segun el orden que defines las propiedades de un objeto. si tan importante es el orden, mi sugerencia es que no uses datos para definir los elementos del array, como lo has estado haciendo hasta ahora con id. mejor crea un array normal y el id lo pones como parte del valor junto con el texto pero separado con algun caracter que no utilices en los textos. por ejemplo, la barra vertical. luego, recorres el array en un bucle normal, un for o while. cada vez que vayas a crear los options primero separas el string con split pasandole como parametro el caracter separador. este te va a generar un array con dos elementos, uno corresponde al id y el otro al texto.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #10 (permalink)  
Antiguo 23/11/2009, 08:13
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Orden de un Array en Firefox problema

Buena idea pero tenes un ejemplo de como hacerlo?
Perdona pero soy medio nulo con javascript.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
  #11 (permalink)  
Antiguo 23/11/2009, 08:21
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Orden de un Array en Firefox problema

quizas algo asi. fijate como esta definido el array, primero el id, el separador (: ) y luego el texto.
Código:
var array = [
"id: Texto",
"388: casa",
"12: autos",
"9: personas"
];

for(var i = 0; array.length; i++){
var split = array.shift().split(": ");
select.options[i] = new Option(split[1], split[0]);
}
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #12 (permalink)  
Antiguo 23/11/2009, 08:23
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Respuesta: Orden de un Array en Firefox problema

Perfecto gracias y voy a ver como lo hago.

Saludos.
__________________
Marcelo Davila.

:. En Ignorante te conviertes al no preguntar, el que pregunta se nutre... :.
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 13:55.