当我想在typescript和firebase上计算时,未定义的对象

时间:2017-12-10 00:40:21

标签: angular typescript firebase ionic-framework ionic3

当我想计算两个值之间的差异时,我有一个问题,我必须计算这个用户满足标准需要多少。这是代码

export class LihatlaporanPage {
  id : string;
  category : number;
  porsiMakan : any =[];
  hehe : any = [];
  saran : any;
  saranKarbo : string;
  saranProteinHewani : string;
  saranProteinNabati : string;
  saranLemak : string;
  Cukup : string;
  kurangKarbo : number;
  kurangLemak : number;
  kurangProteinHewani : number;
  kurangProteinNabati : number;

    console.log("karbohidrat",this.hehe.porsiKarbohidrat,this.porsiMakan.porsiKarbohidrat);
    console.log("ini data this.hehe",this.hehe);
   console.log("cek kurang makan",this.porsiMakan);
    //hitung kekurangan
    this.saran={};
    if(this.hehe.porsiKarbohidrat < this.porsiMakan.porsiKarbohidrat )
     {
       this.kurangKarbo = this.porsiMakan.porsiKarbohidrat -this.hehe.porsiKarbohidrat;  
       this.saran.saranKarbo = " porsi karbohidrat masih kurang" + this.kurangKarbo + " porsi !" ;
     }
     else if(this.hehe.porsiProteinHewani < this.porsiMakan.porsiProteinHewani )
     {
       this.kurangProteinHewani = this.porsiMakan.porsiProteinHewani -this.hehe.porsiProteinHewani;  
       this.saran.saranProteinHewani = " porsi Protein Hewani masih kurang" + this.kurangProteinHewani + " porsi !" ;
     }     
     else if(this.hehe.porsiProteinNabati < this.porsiMakan.porsiProteinNabati )
     {
       this.kurangProteinNabati = this.porsiMakan.porsiProteinNabati -this.hehe.porsiProteinNabati;  
       this.saran.saranProteinNabati = " porsi Protein Nabati masih kurang" + this.kurangProteinNabati + " porsi !" ;
     }
     else if(this.hehe.porsiLemak < this.porsiMakan.porsiLemak )
     {
       this.kurangLemak = this.porsiMakan.porsiLemak-this.hehe.porsiLemak;  
       this.saran.saranLemak = " porsi Lemak masih kurang" + this.kurangLemak + " porsi !" ;
     }
     else 
     {
       this.saran.Cukup= "Sudah cukup";
     }

     console.log("saran porsi",this.saran);
  }

这是代码,

console.log("ini data this.hehe",this.hehe);
   console.log("cek kurang makan",this.porsiMakan);

这段代码给出了一个真正的值,所以我得到的数据是真的,但是当我想要的时候   比较这两件事来找到结果,总是去其他选项。

当我想找到像这样的值时

console.log("karbohidrat",this.hehe.porsiKarbohidrat,this.porsiMakan.porsiKarbohidrat);

它显示未定义。

这是它在控制台上的样子: console

1 个答案:

答案 0 :(得分:1)

this.hehe &amp; this.porsoMakan 是数组。 你应该使用:

console.log("karbohidrat",this.hehe[0].porsiKarbohidrat,this.porsiMakan[0].porsiKarbohidrat);

因此对于if条件使用此:

if(this.hehe[0].porsiKarbohidrat < this.porsiMakan[0].porsiKarbohidrat )