Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将问题与Javascript中的If-else语句进行比较_Javascript_Jquery - Fatal编程技术网

将问题与Javascript中的If-else语句进行比较

将问题与Javascript中的If-else语句进行比较,javascript,jquery,Javascript,Jquery,对于相同的JSON数据,我有两个条件: { "selectionId":124, "selectionDate":"2070-01-01", "selectionAudit":null, "letter":[ { "letterNo":13, "letterId":1, "inout":"out", "inoutNo":"12332466544", "inou

对于相同的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 trdatasecondable。我尝试使用if条件比较
字母
是否为空:

  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");
     }  

虽然
“字母”:[]
为空,但它不进入其他部分。在比较时,我还尝试了trDataSecondTable.letter.length!=0但它也没有进入其他部分

您可以检查数组的
长度

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

您可以检查数组的
长度

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

您的情况应检查
null
和长度:

if (trDataSecondTable.letter != null && trDataSecondTable.letter.length > 0)
在访问
length
属性之前检查
null
非常重要,因为它保证您不会尝试访问
null
上的
length
属性,这将引发异常。这一点很重要,因为数据很少可靠

由于
&&
运算符的作用,如果第一次检查失败,将不会对第二次检查进行评估

实际上,更安全的方法是检查值是否真实,因为这将适用于
null
未定义的

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

您的情况应检查
null
和长度:

if (trDataSecondTable.letter != null && trDataSecondTable.letter.length > 0)
在访问
length
属性之前检查
null
非常重要,因为它保证您不会尝试访问
null
上的
length
属性,这将引发异常。这一点很重要,因为数据很少可靠

由于
&&
运算符的作用,如果第一次检查失败,将不会对第二次检查进行评估

实际上,更安全的方法是检查值是否真实,因为这将适用于
null
未定义的

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

我认为这个条件已经足够了

if(trDataSecondTable.letter.length)

我认为这个条件已经足够了

if(trDataSecondTable.letter.length)

空数组的
长度
为零,而不是
null
,在比较时,我还尝试了trDataSecondTable.letter.length!=0,但它也没有进入else部分
,这是检查空数组的正确方法。您的逻辑中一定还有另一个问题。请确保
[]==null
[]==null
返回
false
如果(数组类型!=“未定义”&&array!=null&&array.length!=null&&array.length>0){}空数组的
长度
为零,在比较时,我还尝试了trDataSecondTable.letter.length!=0,但它也没有进入else部分
,这是检查空数组的正确方法。您的逻辑中一定存在另一个问题。请确保
[]==null
[]==null
返回
false
如果(数组类型!=“未定义”&&array!=null&&array.length!=null&&array.length>0){}你能告诉他为什么要同时检查这两个吗?你能告诉他为什么要同时检查这两个吗?如果不先检查字母是否为null或未定义,就取消引用length属性可能会很危险,对于原始数据更是如此。如果不先检查字母是否为null或未定义,就取消引用length属性可能会很危险,更重要的是原始数据。