0

我收到错误

无法读取未定义的属性“帐单日期”

这里的分期付款未定义

response.detailsResponse.installment.billingDate

我想以动态方式使用 hasOwnProperty,就像我将路径和对象(要检查)传递给函数一样,它会执行以下检查并返回 true 或 false。

function checkProperty(path, obj){
    //assuming path = response.detailsResponse.installment.billingDate
    //assuming obj = response [a json/object]

    //check if response.detailsResponse exists
    //then check if response.detailsResponse.installment exists
    //then check if response.detailsResponse.installment.billingDate exists
}

路径长度/键可以变化。

代码必须经过优化和通用。

4

1 回答 1

0

您可以通过以下方式重写该函数

    function checkProperty(path,obj){
      splittedarr = path.split('.');
      var tempObj = obj;
      for(var i=1; i<splittedarr.length; i++){
        if(typeof tempObj[splittedarr[i]] === 'undefined'){
         return false;
        }else{
         tempObj = tempObj[splittedarr[i]];
        }
      }
      return true;
     }

根据您的示例,从索引开始,1似乎for与传递给函数response的内容相同。response.detailsResponse.installment.billingDatepathobj

于 2017-04-09T07:38:31.557 回答