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 originalvar mat = {}; // evitamos el new Object
mat["cero"] = [1, 2, 3]; // evitamos el new Array
mat["uno"] = [1, 2, 3]; // evitamos el new Array
mat["dos"] = [1, 2, 3]; // evitamos el new Array
mat["tres"] = [1, 2, 3]; // evitamos el new Array
var result = '';
for (var elem in mat) { // en JS se suele estilar usar las llaves arriba
result += '<h1>' + elem + '</h1>';
for(var i = 0, l = mat[elem].length; i < l; i++) {
result += '<h2>' + mat[elem][i] + '</h2>';
}
}
document.write(result);