Hola:
 
Parece que no distingues entre un Array cuyo tratamiento es indexado numéricamente, y un objeto (Object()), que se indexa por atributos... en vez de new Array(), sería new Object(); o directamente escribir con sintaxis json... 
un_caballo = new Object();
un_caballo["nombre"] = nombre;
un_caballo.raza = raza;//... 
ó 
un_caballo = {"nombre": nombre, "raza": raza, "disciplina": disciplina}; 
Saludos 
