如何检查未定义的变量javascript?

时间:2016-05-14 11:04:13

标签: javascript jquery html json

我的Javascript是这样的:

<script type="text/javascript">

     var priceJson = '[{"@attributes":{"Code":"SGL","Total":"400000"},"DayPrice":{"Date":"2016-05-26","Rate":"400000"}},{"@attributes":{"Code":"DBL","Total":"200000"},"DayPrice":{"Date":"2016-05-26","Rate":"200000"}}]';

    console.log(priceJson);
    var priceObject = JSON.parse(priceJson);
    console.log(priceObject);

    if(priceObject.DayPrice.Rate)
        priceObject = [priceObject]; 
    else
        priceObject = priceObject;

    console.log(priceObject);
    var priceJson = JSON.stringify(priceObject);
    console.log(priceJson);

    var countRoomType = priceObject.length;
    for(var i=0; i<countRoomType; i++){ 
        console.log(priceObject[i].DayPrice.Date);
        console.log(priceObject[i].DayPrice.Rate);
    }


</script>

演示(参见控制台):https://jsfiddle.net/oscar11/wsqdha8w/1/

变量priceJson具有动态值。该值可以是单个数据实例,也可以是数据数组。如果该值包含1个数据,那么我将转换为如下数据数组:

if(priceObject.DayPrice.Rate)
        priceObject = [priceObject]; 

但是,在控制台中存在以下错误:TypeError: priceObject.DayPrice is undefined

解决我问题的任何解决方案?

1 个答案:

答案 0 :(得分:2)

根据您的错误消息判断,您还需要检查DayPrice是否存在。

if( priceObject.DayPrice && priceObject.DayPrice.Rate )

if条件有两个步骤。

  • 首先检查DayPrice是否存在,
  • 第二次,它会检查DayPrice.Rate是否存在

如果第一个失败,