相关疑难解决方法(0)

检查对象是否已定义,最佳做法.

我有一个来自ajax请求的以下JSON响应.

var json = {
    "response": {
        "freeOfChargeProduct": {  
        "description": "Product",  
        "orderQty": 5,
        "productName": "XYZ",
        "qty": 6,
        "details": {
            "price": 55.5, 
            "instock": "true",
            "focQuantity": 1
        }
    }, 
    "orderLineId": 4788,
    "totalOrderLinePrice": "741.36",
    "totalOrderPrice": "1,314.92",
    "totalQty": 17
};
Run Code Online (Sandbox Code Playgroud)

JSON并不总是返回"freeOfChargeProduct"属性.因此,如果我想获得"freeOfChargeProduct"价格,那么我必须执行以下操作:

var getFreeOfChargeProductPrice = function() { 
   var r = json.response;
   if (r && r.freeOfChargeProduct && r.freeOfChargeProduct.details) {
      return r.freeOfChargeProduct.details.price;         
   }
   return null;
};
Run Code Online (Sandbox Code Playgroud)

没问题.但是检查对象中的每个属性都非常烦人,因此我创建了一个函数来检查对象中的属性是否已定义.

var getValue = function (str, context) {
    var scope = context || window,
        properties = str.split('.'), i;
    for(i = 0; …
Run Code Online (Sandbox Code Playgroud)

javascript

19
推荐指数
2
解决办法
3万
查看次数

标签 统计

javascript ×1