将JSON节点的一个对象与另一个同名对象相结合



我有两个json文件,我想在其中一个json节点的一个对象,另一个带有相同节点名称的json节点。

示例: -

json file1: -

{
"teams": [
    {
        "id": 1,
        "name": "Australia",
        "shortName": "AUS",
        "flag": "https://s3/Images/flags/australia.png",
        "group": "d",
        "rank": "39",
        "starRating": "2",
    },
    {
        "id": 2,
        "name": "Argentina",
        "shortName": "AGR",
        "flag": "https://s3/Images/flags/ar.png",
        "group": "d",
        "rank": "5",
        "starRating": "5",
    }]
}

第二个JSON文件:

{
"standings": {
     "C": [
            {
                "group": "C",
                "rank": 0,
                "team": "France",
                "teamId": 773,
                "playedGames": 0,
                "crestURI": "https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg",
                "points": 0,
                "goals": 0,
                "goalsAgainst": 0,
                "goalDifference": 0
            },
            {
                "group": "C",
                "rank": 0,
                "name": "Australia",
                "teamId": 779,
                "playedGames": 0,
                "crestURI": "",
                "points": 0,
                "goals": 0,
                "goalsAgainst": 0,
                "goalDifference": 0,
        }]

}

基本上,我想在第二个JSON中匹配"name":"Australia",并在第一个JSON中添加"name":"Australia"中的AUS的整个对象,依此类推,依此类推。

有什么建议我该如何实现?

编辑: - 预期输出。

 {
    "standings": {
         "C": [
                {
                    "group": "C",
                    "rank": 0,
                    "team": "France",
                    "teamId": 773,
                    "playedGames": 0,
                    "crestURI": "https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg",
                    "points": 0,
                    "goals": 0,
                    "goalsAgainst": 0,
                    "goalDifference": 0
                },
                {
                    "group": "C",
                    "rank": 0,
                    "name": "Australia",
                    "teamId": 779,
                    "playedGames": 0,
                    "crestURI": "",
                    "points": 0,
                    "goals": 0,
                    "goalsAgainst": 0,
                    "goalDifference": 0,
                    "id": 1,

                    "name": "Australia",
                    "shortName": "AUS",
                    "flag": "https://s3/Images/flags/australia.png",
                    "group": "d",
                    "rank": "39",
                    "starRating": "2",
                }]
    }
    }

无论如何,这个问题已经在这里得到回答。因为成为初学者的众多问题之一是您不知道要搜索什么如果您想稍后匹配名称!

<script>
    const arr1 = [
        {   "id": 1,
            "name": "Australia",
            "shortName": "AUS",
            "flag": "https://s3/Images/flags/australia.png",
            "group": "d",
            "rank": "39",
            "starRating": "2"
        },
        {
            "id": 2,
            "name": "Argentina",
            "shortName": "AGR",
            "flag": "https://s3/Images/flags/ar.png",
            "group": "d",
            "rank": "5",
            "starRating": "5"
        }];
     const arr2 = [
                {
                    "group": "C",
                    "rank": 0,
                    "team": "France",
                    "teamId": 773,
                    "playedGames": 0,
                    "crestURI": "https://upload.wikimedia.org/wikipedia/en/c/c3/Flag_of_France.svg",
                    "points": 0,
                    "goals": 0,
                    "goalsAgainst": 0,
                    "goalDifference": 0
                },
                {
                    "group": "C",
                    "rank": 0,
                    "name": "Australia",
                    "teamId": 779,
                    "playedGames": 0,
                    "crestURI": "",
                    "points": 0,
                    "goals": 0,
                    "goalsAgainst": 0,
                    "goalDifference": 0
            }];
    const result = arr1.map(val => {
        return Object.assign({}, val, arr2.filter(v => v.team === val.name)[0]);
    });
        console.log(result);
    </script>

最新更新