簡體   English   中英

如何在Javascript嵌套的object結構中查找具體數據?

[英]How to find specific data in nested object structure in Javascript?

我分享了一段代碼,展示了我有兩種類型的response 如果您查看下面的代碼,您會發現服務結果的response會略有不同。 在第一種類型中,您只有一個data ,但在第二種類型中,該data本身有另一個data

{
    "data": {
        "hasError": false,
        "developerMessage": null,
        "totalCount": 43
    },
    "hasError": false,
    "developerMessage": null
}

或者:

{
    "data": {
        "hasError": false,
        "developerMessage": null,
        "data": {
            "hasError": false,
            "developerMessage": null,
            "totalCount": 43
        },
        "totalCount": 43
    },
    "hasError": false,
    "developerMessage": null
}

所以為了處理這個困境,我必須首先檢查response的結果並將其分成兩個塊。 最大的問題是由於我無法在這里解釋的原因,這個層次結構可能會擴展並且我有三個數據,但我們可以肯定的是response中的data總是最深的 (本例中的第三項)

   return this.httpWrapperService.get(url + tableNameWithSlash, {
            params: params, additionalOptions: {spinnerEnabled: false}
          }).then((result: any) => {

            if (result.data.data) {
              // code
              return [...result.data.data];
            } 

            else if (result.data) {
              // code
              return [...result.data];
            }

          });

我想知道是否有更好的解決方案來處理這種動態response

您可以使用遞歸來制作適用於任何深度的解決方案,例如數據位於第 4 層

    .then((result: any) => {
        const findData = (response: any) => {
           return response.data ? findData(response.data):response;
        }
         return [...findData(result.data)];

          });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM