Потому что он вытекает undefined в array?

Когда я хочу показать два растения, которые я создал в квартире, я засолил следующее:

Мы находимся в растении: undefined дверь undefined и владелец undefined

Здесь у меня есть мой код:

plantas = Array();
function edificio(calle, numero, cp)
{
  // Propiedades
  this.calle = calle;
  this.numero = numero;
  this.cp = cp;

  // Metodos
  this.modificarNumero = modificarNumero;
  this.modificarCalle = modificarCalle;
  this.modificarCodigoPostal = modificarCodigoPostal;
  this.imprimeCalle = imprimeCalle;
  this.imprimeNumero = imprimeNumero;
  this.imprimeCodigoPostal = imprimeCodigoPostal;
  this.agregarPropietario = agregarPropietario;
  this.imprimePlantas = imprimePlantas;
}

this.agregarPlantasYPuerta = function (plantas, puertas)
{

}

this.modificarNumero = function (numero)
{
  this.numero = numero;
}

this.modificarCalle = function (calle)
{
  this.calle = calle;
}

this.modificarCodigoPostal = function (cp)
{
  this.cp = cp;
}

this.imprimeCalle  = function ()
{
  document.write("<br>Este edificio esta en la calle " + this.calle);
}

this.imprimeNumero  = function ()
{
  document.write("<br>Este edificio es el nº " + this.numero);
}

this.imprimeCodigoPostal  = function ()
{
  document.write("<br>Este edificio esta dentro del codigo postal: " + this.cp);
}

this.agregarPropietario = function (planta, puerta, propietario)
{
  plantas.push(
    [
      {"planta":planta,"puerta":puerta,"propietario":propietario}
    ])
}

this.imprimePlantas  = function ()
{
  for(var i=0; i<plantas.length; i++)
  {
    document.write("<br>Estamos en la planta: " + plantas[i].planta + " puerta " +plantas[i].puerta + " y el propietario es " + plantas[i].propietario);
  }
}


var CasaJavi = new edificio("Calle navarra",29,50650);
var CasaAna = new edificio("Calle aaaaaa",2329,'5065dds0');

document.write("Vivo en la " + CasaJavi.calle + " nº " + CasaJavi.numero + " y el codigo postal es " + CasaJavi.cp);
CasaJavi.modificarNumero('50');
document.write("<br>Vivo en la " + CasaJavi.calle + " nº " + CasaJavi.numero + " y el codigo postal es " + CasaJavi.cp);
CasaJavi.modificarCalle('Falsa');
document.write("<br>Vivo en la " + CasaJavi.calle + " nº " + CasaJavi.numero + " y el codigo postal es " + CasaJavi.cp);
CasaJavi.modificarCodigoPostal('50730');
document.write("<br>Vivo en la " + CasaJavi.calle + " nº " + CasaJavi.numero + " y el codigo postal es " + CasaJavi.cp);

CasaAna.imprimeCalle();
CasaAna.imprimeNumero();
CasaAna.imprimeCodigoPostal();
CasaJavi.agregarPropietario(1,2,"Javier Izquierdo");
CasaJavi.agregarPropietario(1,1,"Juan Rodriguez");
CasaJavi.imprimePlantas();

Кто-то знает, потому что он бьет козырем меня?

3
задан 17.01.2017, 23:01
0 ответов

Измените эту часть

plantas.push(
    [
      {"planta":planta,"puerta":puerta,"propietario":propietario}
    ])

чтобы решать он был бы:

plantas.push(

      {"planta":planta,"puerta":puerta,"propietario":propietario}
    )

plantas = [];
function edificio(calle,numero,cp)
{
  //Propiedades
  this.calle = calle;
  this.numero = numero;
  this.cp = cp;

  //Metodos
  this.modificarNumero = modificarNumero;
  this.modificarCalle = modificarCalle;
  this.modificarCodigoPostal = modificarCodigoPostal;
  this.imprimeCalle = imprimeCalle;
  this.imprimeNumero = imprimeNumero;
  this.imprimeCodigoPostal = imprimeCodigoPostal;
  this.agregarPropietario = agregarPropietario;
  this.imprimePlantas = imprimePlantas;
}

this.agregarPlantasYPuerta = function (plantas,puertas)
{

}

this.modificarNumero = function (numero)
{
  this.numero = numero;
}

this.modificarCalle = function (calle)
{
  this.calle = calle;
}

this.modificarCodigoPostal = function (cp)
{
  this.cp = cp;
}

this.imprimeCalle  = function ()
{
  document.write("<br>Este edificio esta en la calle " + this.calle);
}

this.imprimeNumero  = function ()
{
  document.write("<br>Este edificio es el nº " + this.numero);
}

this.imprimeCodigoPostal  = function ()
{
  document.write("<br>Este edificio esta dentro del codigo postal: " + this.cp);
}

this.agregarPropietario = function (planta,puerta,propietario)
{
  plantas.push(
    
      {"planta":planta,"puerta":puerta,"propietario":propietario}
    )
}

this.imprimePlantas  = function ()
{
  for(var i=0; i<plantas.length; i++)
  {
    document.write("<br>Estamos en la planta: " + plantas[i].planta + " puerta " +plantas[i].puerta + " y el propietario es " + plantas[i].propietario);
  }
}


var CasaJavi = new edificio("Calle navarra",29,50650);
var CasaAna = new edificio("Calle aaaaaa",2329,'5065dds0');
document.write("Vivo en la " + CasaJavi.calle + " nº " + CasaJavi.numero + " y el codigo postal es " + CasaJavi.cp);
CasaJavi.modificarNumero('50');
document.write("<br>Vivo en la " + CasaJavi.calle + " nº " + CasaJavi.numero + " y el codigo postal es " + CasaJavi.cp);
CasaJavi.modificarCalle('Falsa');
document.write("<br>Vivo en la " + CasaJavi.calle + " nº " + CasaJavi.numero + " y el codigo postal es " + CasaJavi.cp);
CasaJavi.modificarCodigoPostal('50730');
document.write("<br>Vivo en la " + CasaJavi.calle + " nº " + CasaJavi.numero + " y el codigo postal es " + CasaJavi.cp);
CasaAna.imprimeCalle();
CasaAna.imprimeNumero();
CasaAna.imprimeCodigoPostal();
CasaJavi.agregarPropietario(1,2,"Javier Izquierdo");
CasaJavi.agregarPropietario(1,1,"Juan Rodriguez");
CasaJavi.imprimePlantas();
1
ответ дан 03.12.2019, 17:38

Кто-то знает, потому что он бьет козырем меня?

В функции agregarPropietario, ты добавляешь в договоренность plantas, один array ([]) с 1 object ({}) а именно, что, чтобы мочь соглашаться на свойства объекта, еще тебе остается прибывать в первую стоимость array.

Пример: plantas[i][0].planta

Решения:

  • Изменять, что он присоединяется в договоренность plantas в методе agregarPropietario:

    plantas.push({"planta":planta,"puerta":puerta,"propietario":propietario});
    
  • Изменять, как читается договоренность plantas в методе imprimePlantas:

    var planta = plantas[i][0];
    document.write("<br>Estamos en la planta: " + planta.planta + " puerta " +planta.puerta + " y el propietario es " + planta.propietario);
    

PD: У твоего кода есть большие "несоответствия" я рекомендую тебе читать эту статью: Введение в язык сценариев JavaScript, ориентируемый на объекты

3
ответ дан 03.12.2019, 17:38

Теги

Похожие вопросы