使用来自两个数组的数据创建嵌套对象数组

我正在发出两个 GET 请求,第二个请求(“链接”)的数据依赖于第一个请求(“类别”)的数据。我的目标是从两者创建一个新的对象数组,并在它分配给的类别下对链接进行排序。


理想情况下,我希望新的 obj 数组看起来像这样:


return {

    "_Category": m.Category, // "Animals"

    "_RootID": m.ID, // "1"

    "_Child": { 

            "_Title": "" // {_Title: "Otter"}, {_Title: "Monkey"}, etc

            "_Link": "" // "otters.com", etc

    }

}

正确完成后,下一个类别分组将如下所示:


    "_Category": m.Category, // "Fruit"

    "_RootID": m.ID, // "2"

    "_Child": { 

            "_Title": "" // {_Title: "Banana"}, {_Title: "Apple"}, etc

            "_Link": "" // "bananas.com", etc

    }

等等。


我已经能够加载 下的所有链接"_Title",但问题是它们没有按类别分开。看起来像:


        "_Category": m.Category, // "Fruit"

        "_RootID": m.ID, // "2"

        "_Child": { 

                "_Title": "" // {_Title: "Otter"}, {_Title: "Banana"}, {_Title: "Monkey"}, etc

                "_Link": ""

        }

我如何根据它们所绑定的类别分发第二个数组中的链接?


大话西游666
浏览 115回答 1
1回答

慕码人8056858

我对它进行了很多修改,并且能够做到。注意 - 我更改了一些变量名:]).then(axios.spread((cats, links) => {            let catsData = cats.data.d.results,                linksData = links.data.d.results,                newCats = catsData.map((m) => {                    let cat = m.Category,                        titlesArr = [],                        linksArr = [];                                    linksData                        .filter((n) => {                            if (n.Category.Category === cat) {                                titlesArr.push(n.Title)                                linksArr.push(n.Link)                            }})                    return {                        "_Category": m.Category,                        "_RootID": m.ID,                        "_Child": {                            "_Title": titlesArr,                            "_Link": linksArr                        }                    }            })            console.log(newCats)我不得不编辑信息,但下面出现的所有内容_Title都属于“De...” _Category,其他类别也类似。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript