07/04/2014, 17:59
|
| | Fecha de Ingreso: junio-2013
Mensajes: 28
Antigüedad: 11 años, 7 meses Puntos: 1 | |
Bucle que imprime mal Hola, tengo un problema con este código y es que al imprimir la lista de propietarios hay puertas que se repiten en el bucle, que es lo que tengo mal? Muchas gracias. index.html
Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<title>Tarea 1 Junio</title>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="./funciones.js"></script>
</head>
<body>
</body>
</html>
funciones.js
Código:
//constructor de objetos tipo Edificio que recibe parametros
function edificio(calle, numero, codigo){
//propiedades del objeto Edificio
this.calle = calle;
this.numero = numero;
this.codigo = codigo;
this.plantas = new Array(); // para las plantas creamos un array de plantas
//metodos del objeto Edificio
this.modificarNumero = function (numero) // metodo para modificar numero
{
this.numero = numero;
};
// metodo que agrega plantas al array plantas, y en cada planta agrega el numero de puertas
this.agregarPlantasYPuertas = function(numPlantas, puertas)
{
if (this.plantas.length == 0) // si el array no contiene elementos
{
for (var i = 0; i < numPlantas; i++) // bucle para rellenar el array de plantas con un array por cada planta
{
this.plantas[i] = new Array();
for (var j = 0; j < puertas; j++) // bucle para añadir en cada array de plantas las puertas que hay, tb array
{
this.plantas[i].push(""); // con metodo push se añaden elementos al array de puertas
}
}
}
else // si esta creado el array se añaden plantas y puertas a las que ya habia
{
for (var i = 0; i < numPlantas; i++)
{
this.plantas[this.plantas.length] = new Array();
for (var j = 0; j < puertas; j++)
{
this.plantas[this.plantas.length-1].push("");
}
}
}
};
this.modificarCalle = function (calle)
{
this.calle = calle;
};
this.modificarCodigoPostal = function (codigo)
{
this.codigo = codigo;
};
this.imprimeCalle = function ()
{
return this.calle;
};
this.imprimeNumero = function ()
{
return this.numero;
};
this.imprimeCodigoPostal = function ()
{
return this.codigo;
};
this.imprimePlantas = function() // metodo que imprime informacion de las plantas
{
document.write("<h4>Listado de propietarios del edificio de la calle " + this.imprimeCalle() + " con numero: " + this.imprimeNumero() + "</h4>");
for(var i = 0;i < this.plantas.length;i++)
{
for(var j = 0;j < this.plantas[i].length;j++)
{
document.write("<li>El propietario de la puerta "+(parseInt(edificioA.plantas[i].indexOf(edificioA.plantas[i][j]))+1)+" de la planta "+(parseInt(edificioA.plantas.indexOf(edificioA.plantas[i]))+1)+": "+edificioA.plantas[i][j]+"</li>");
}
}
};
this.agregarPropietario = function(nombre, planta, puerta) // metodo que agrega propietario a cada puerta de cada planta
{
this.plantas[planta][puerta] = nombre;
document.write("<li>"+edificioA.plantas[planta][puerta] + " es ahora el propietario de la puerta " + (parseInt(edificioA.plantas[planta].indexOf(edificioA.plantas[planta][puerta]))+1) + " de la planta " + (parseInt(edificioA.plantas.indexOf(edificioA.plantas[planta]))+1) + ".</li>");
};
document.write("<li>Construido nuevo edificio en calle: "+calle+", nº: "+numero+", CP: "+codigo+".</ul>");
}
document.write("Instanciamos 3 objetos edificioA, edificioB y edificioC con estos datos:</br></br>");
var edificioA = new edificio("Garcia Prieto",58,15706);
var edificioB = new edificio("Camino Caneiro",29,32004);
var edificioC = new edificio("San Clemente","s/n",15705);
document.write("<br/><br/>");
document.write("<li>El código postal del edificio A es: "+edificioA.imprimeCodigoPostal()+".</li>");
document.write("<li>La calle del edificio C es: "+edificioC.imprimeCalle()+".</li>");
document.write("<li>El edificio B está situado en la calle "+edificioB.imprimeCalle()+" número "+edificioB.imprimeNumero()+".</li>");
document.write("<br/>");
edificioA.agregarPlantasYPuertas(2, 3);
document.write("Agregamos " + edificioA.plantas.length + " plantas y " + edificioA.plantas[0].length + " puertas por planta al edificio A...<br/>");
document.write("<br/>Agregamos 4 propietarios al edificio A...<br/><br/>");
edificioA.agregarPropietario("Jose Antonio Lopez.", 0, 0);
edificioA.agregarPropietario("Luisa Martinez.", 0, 1);
edificioA.agregarPropietario("Marta Castellón.", 0, 2);
edificioA.agregarPropietario("Antonio Pereira.", 1, 1);
edificioA.imprimePlantas();
document.write("<br/>Agregamos 1 planta más al edificio A...<br/><br/>");
document.write("Agregamos 1 propietario más al edificio A planta 3, puerta 2...<br/>");
edificioA.agregarPlantasYPuertas(1, 3);
document.write("</br>");
edificioA.agregarPropietario(" Pedro Meijide", 2, 1);
edificioA.imprimePlantas();
|