为了账号安全,请及时绑定邮箱和手机立即绑定

抓取特定的对象属性,而不是直接引用

抓取特定的对象属性,而不是直接引用

小唯快跑啊 2021-04-21 17:14:56
我试图在我的checkForUrgentEvents方法中获取特定的对象属性并返回它。不用引用我当前的方式,而是可以找到特定的属性?我尝试了Object.hasownproperty,但是由于它嵌套得很深,所以无法正常工作。  private checkForUrgentEvents(urgentEventsData: any, query:CurrentContentParams) {  return urgentEventsData.data.Data[      query.type + caasConfig.urgentContentIdSuffix    ].content[query.id];  }// urgentEventsData:{ status: 200,  statusText: 'OK',  headers:   { connection: 'close',     'transfer-encoding': 'chunked' },  config:   { adapter: [Function: httpAdapter],     transformRequest: { '0': [Function: transformRequest] },     transformResponse: { '0': [Function: transformResponse] },     timeout: 0,     xsrfCookieName: 'XSRF-TOKEN',     method: 'get',  data:   { LatestModified: 1555080079154,     Results: 1,     Error: '',     Data: { faqsurgentcontent: [Object] } } }//query:{ id: 'MAIN', type: 'faqs' }
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

我遇到了类似的问题,请遵循以下步骤:


 parseContentResponse(response: any, scope: string, type: string) {

    if (response) {

      return (

        this.getContentObject(

          response,

          ['data', 'Data', `${scope}`, 'content', `${type}`]

        )

      );

    }

    return response;

  }


//then you could look for the key


 private getContentObject(response: any, contentPathArray: Array<string>) {

    return contentPathArray.reduce(

      (obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined),

      response

    );

  }


查看完整回答
反对 回复 2021-04-29
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可以尝试以下方法:


function findById(o, id) {

    //Early return

    if( o.id === id ){

    return o;

    }

    var result, p; 

    for (p in o) {

        if( o.hasOwnProperty(p) && typeof o[p] === 'object' ) {

            result = findById(o[p], id);

            if(result){

                return result;

            }

        }

    }

    return result;

}


查看完整回答
反对 回复 2021-04-29
  • 2 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信