Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/01/2013, 16:53
Avatar de Aijoona
Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años, 6 meses
Puntos: 343
Respuesta: Problema con indice Array en JavaScript

Esto esta mal a muchos niveles.

En JavaScript los arrays no cumplen el rol que tienen en PHP (donde hacen de arrays y mapas (o arrays asociativos) ). En este ejemplo estás usando mat como un mapa, es decir, le estás asignando propiedades al objeto y no elementos al array.

Segundo, <voz autorizada>no uses nunca*, pero nunca** la expresión new Array</voz autorizada>.

* NUNCA
** A menos que sepas muy bien lo que haces.

Tercero, nunca uses for/in para recorrer arrays (si objetos).

Cuarto, en tu ejemplo, que hace mat['key'] es un misterio de la naturaleza.

Suponiendo que lo que queres es mostrar todos los elementos de los arrays:

Código Javascript:
Ver original
  1. var mat = {}; // evitamos el new Object
  2.  
  3. mat["cero"] = [1, 2, 3]; // evitamos el new Array
  4. mat["uno"] = [1, 2, 3]; // evitamos el new Array
  5. mat["dos"] = [1, 2, 3]; // evitamos el new Array
  6. mat["tres"] = [1, 2, 3]; // evitamos el new Array
  7.  
  8. var result = '';
  9.  
  10. for (var elem in mat) { // en JS se suele estilar usar las llaves arriba
  11.  
  12.         result += '<h1>' + elem + '</h1>';
  13.        
  14.         for(var i = 0, l = mat[elem].length; i < l; i++) {         
  15.             result += '<h2>' + mat[elem][i] + '</h2>';
  16.         }
  17.    
  18. }
  19.  
  20. document.write(result);
__________________
blog | @aijoona