首页 > 解决方案 > 嵌套 forEach 循环打字稿

问题描述

所以现在我正在开发一个 RESTful API,对于这个特定的路由,我需要使用来自两个不同的现有 API 的数据,我将它们组合成一个对象数组,我在 GET 路由上作为 JSON 对象返回。

所以在这种情况下,我从某个 API 获取上类,然后根据第一个 API 的值从另一个 API 获取下类。为了实现这一点,我做了一个嵌套的 forEach 循环,但是我添加到第一个 API 的结果中的对象数组不存在。所以感觉就像我的代码中应该循环通过第二个 API 调用的部分永远不会到达。有谁知道这里出了什么问题?我已经研究这个问题好几天了,无法弄清楚我哪里出错了。

非常感谢您的帮助,如果描述得太模糊,我很乐意回答您的问题并扩展我的问题。

兄弟,维克多

function ObjectHandler(obj: any): object[] {
    const returnobject: object[] = [
    ];
    obj.forEach((e: any) => {
        const spec = e.codevalue;
        const specLC = spec.toLowerCase();
        const url: string = "http://baseurlexample.com/" + specLC;
        const underclassRAW = testfunction(url);
        const underclass: object[] = [
        ];
        underclassRAW.forEach((e: any) => {
            const metadata = e.metadata.find((e: any) => e.lang === "EN");
            const uc_keyvalues = {
                value: e.codevalue,
                explanation: metadata.name,
                description: metadata.description,
            };
            underclass.push(uc_keyvalues);
        });
        const metadata = e.metadata.find( (e: any) => e.lang === "EN");
        const keyvalues = {
            value: e.codevalue,
            explanation: metadata.name,
            underclass: underclass,
        };
        returnobject.push(keyvalues);
    });
        return returnobject;
    }



    function testfunction (URL: String): object[] {
    const value: object[] = [
    ];
    let data = "";
    https.get(URL, (resp: Response) => {
        resp.on("data", (chunk: any) => {
            data += chunk;
        });
        resp.on("end", () => {
            const newdata = JSON.parse(data);
            value.push(newdata);
        });
    })
    .on("error", (err: Error) => {
        console.log("Error: " + err.message);
    });
    return value;
    }

返回对象的外观:

    [      
{
              "value": "A",
              "explanation": "something",
              "underclass": [
                  {
                      "value": "A1",
                      "explanation": "something",
                      "description": "something."
                  },
                  {
                      "value": "A2",
                      "explanation": "something",
                      "description": ""
                  },
                  {
                      "value": "A3",
                      "explanation": "A3",
                      "description": "something"
                  },
                  {
                      "value": "A4",
                      "explanation": "Something",
                      "description": ""
                  }
              ]
          },

它的外观:

        [      
{
              "value": "A",
              "explanation": "something",
              "underclass": []
},

标签: javascripttypescriptforeachnested-loops

解决方案


推荐阅读