用Java中的If else语句比较问题

时间:2019-02-06 10:05:31

标签: javascript jquery

我的相同JSON数据有两个条件:

{  
   "selectionId":124,
   "selectionDate":"2070-01-01",
   "selectionAudit":null,
   "letter":[  
      {  
         "letterNo":13,
         "letterId":1,
         "inout":"out",
         "inoutNo":"12332466544",
         "inoutDate":"2070-01-01",
         "letterIssuedSubBy":null,
         "letterFile":null,
         "representativeName":null,
         "representativeNameEng":null,
         "selectionId":124,
         "assessmentNo":null,
         "entryBy":"user98",
         "rStatus":"I",
         "others":null,
         "signatary":"qwerrt",
         "letterBox":null,
         "imageFile":null,
         "imageTitle":null,
         "reminderYesNo":"N"
      }
   ]
}

相同的JSON,字母数组为空结构:

  {  
       "selectionId":124,
       "selectionDate":"2070-01-01",
       "selectionAudit":null,
       "letter":[]
    }

所有这些值都存储在   var trDataSecondTable; 。我尝试通过使用if条件来比较letter是否为空:

  if(trDataSecondTable.letter != null) {
            console.log("asasfasdfdsfdsfds");
         $("#inoutDate").val(trDataSecondTable.letter[0].inoutDate);
         $("#inoutNo").val(trDataSecondTable.letter[0].inoutNo);
         $("#signatary").val(trDataSecondTable.letter[0].signatary);
     }
     else
     {
         console.log("entered in else part");
     }  

尽管"letter":[]为空,但没有进入其他部分。在比较时,我还尝试了 trDataSecondTable.letter.length!= 0 ,但是它没有进入其他部分。

3 个答案:

答案 0 :(得分:4)

您的条件应检查null和长度

if (trDataSecondTable.letter != null && trDataSecondTable.letter.length > 0)

在访问null属性之前检查length很重要,因为它可以确保您不会尝试访问length上的null属性,这会增加一个例外。这很重要,因为数据很少可靠。

由于&&运算符,如果第一个检查失败,则不会评估第二个检查。

实际上,一种更安全的方法是检查该值是否为真,因为这将适用于nullundefined

if (trDataSecondTable.letter && trDataSecondTable.letter.length > 0)

答案 1 :(得分:1)

您可以检查数组的length

if (trDataSecondTable.letter.length) {
    // letter has some elements
} else {
    // no elements
}

答案 2 :(得分:0)

我认为这种情况就足够了

if(trDataSecondTable.letter.length)