Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将嵌套JSON数组转换为平面JSON数组_Javascript_Node.js - Fatal编程技术网

Javascript 将嵌套JSON数组转换为平面JSON数组

Javascript 将嵌套JSON数组转换为平面JSON数组,javascript,node.js,Javascript,Node.js,我有一个嵌套的JSON数组,它来自mongoDB查询,我想将其转换为平面JSON。我使用的是嵌套的mondo文档,但我想以更可读的方式显示数据。我的JSON具有以下结构: [{ "country": "Country A", "regions": [{ "region": "region A1", "cities": [{ "city": "city A11"

我有一个嵌套的JSON数组,它来自mongoDB查询,我想将其转换为平面JSON。我使用的是嵌套的mondo文档,但我想以更可读的方式显示数据。我的JSON具有以下结构:

[{
     "country": "Country A",
     "regions": [{
            "region": "region A1",
            "cities": [{
                    "city": "city A11"
                },
                {
                 "city": "city A12"
                }
            ]
            },
            {
                "region": "region A2",
                "cities": [{
                        "city": "city A21"
                    },
                    {
                        "city": "city A22"
                    }
                ]
            }
        ]
    },
    {
        "country": "Country B",
        "regions": [{
                "region": "region B1",
                "cities": [{
                        "city": "city B11"
                    },
                    {
                        "city": "city B12"
                    }
                ]
            },
            {
                "region": "region B2",
                "cities": [{
                        "city": "city B21"
                    },
                    {
                        "city": "city B22"
                    }
                ]
            }
        ]
    }
]
我只想显示重要信息,不想显示嵌套数组的结构。 如何在Javascript中修改数据以实现以下结果

[
  {
    "country": "Country A",
    "region":"Region A1",
    "city": "City A11"
  },
   {
    "country": "Country A",
    "region":"Region A1",
    "city": "City A12"
  },
  -------------
   {
    "country": "Country B",
    "region":"Region B1",
    "city": "City B11"
  },
  -----------
   {
    "country": "Country B",
    "region":"Region B2",
    "city": "City B22"
  }
]
实现此结果最简单的方法是什么?

最简单的方法是循环并创建一个数组。您可以使用
reduce()
执行此操作:

let arr=[{“国家”:“国家A”,“地区”:[{“地区”:“地区A1”,“城市”:[{“城市”:“城市A11”},{“城市”:“城市A12”},{“地区”:“地区A2”,“城市”:[{“城市”:“城市A21”},{“城市A22”},},{“国家”:“国家B”,“地区”:[{“地区”:“地区B1”,“城市”:“城市B11”},{“城市”:“城市B12”},{“地区”},{“地区”,“城市”:[{“城市”:“城市B21”},{“城市”:“城市B22”}]}]
let flat=arr.reduce((arr,{country,regions})=>{
regions.forEach({region,cities})=>{
cities.forEach({city})=>{
arr.push({国家、地区、城市})
})
})
返回arr
}, [])

控制台。原木(平)
发布的问题似乎根本不包括解决问题的方法。StackOverflow希望您能这样做,因为您的尝试有助于我们更好地了解您的需求。请编辑问题以显示您尝试了什么,以便说明您遇到的具体障碍。有关更多信息,请参阅并采取行动。