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