Javascript 谷歌图表的地图数据结构

Javascript 谷歌图表的地图数据结构,javascript,arrays,object,ecmascript-6,Javascript,Arrays,Object,Ecmascript 6,我调用后端读取JSON文件,并将其作为数组返回。我这样做是为了让它更容易处理,这是代码 let url = `/api/some-url/${this.$route.params.id}`; axios.get(url).then(data => { console.log(data.data); }).catch(err => { console.log(err) }); console.log的输出如下所示 (7) [Array(345), Array(5),

我调用后端读取JSON文件,并将其作为数组返回。我这样做是为了让它更容易处理,这是代码

let url = `/api/some-url/${this.$route.params.id}`;

axios.get(url).then(data => {
    console.log(data.data);
}).catch(err => {
    console.log(err)
});
console.log的输出如下所示

(7) [Array(345), Array(5), Array(1), Array(1), Array(1), Array(1), Array(4)]
    0: (345) [{…}, {…}, {…}, {…}, …]
    1: (5) [{…}, {…}, {…}, {…}, {…}]
    2: [721]
    3: [3201]
    4: ["2012-01-08"]
    5: ["2019-05-02"]
    6: (4) [{…}, {…}, {…}, {…}]
现在我对元素6的数组感兴趣。如下所示

6: Array(4)
    0: {Category: "cat1", Count: 11}
    1: {Category: "cat2", Count: 24}
    2: {Category: "cat3", Count: 52}
    3: {Category: "cat4", Count: 57}
据我所知,GoogleCharts要求数组的第一行是列名,另一行是数据。差不多

let data = google.visualization.arrayToDataTable([
   ['Year', 'Asia'],
   ['2012',  900],
   ['2013',  1000],
]);
因此,在我的情况下,我认为它应该是一些单独的东西

let data = google.visualization.arrayToDataTable([
   ['Category', 'Count'],
   ['cat1',  11],
   ['cat2',  24],
   ['cat3',  52],
   ['cat4',  57]
]);
根据我的初始数据,实现这种格式的最佳方法是什么?另外,我拥有的初始数组中大约有3个元素需要这样格式化的数据,我是单独处理还是以某种方式一起处理


感谢使用
map
修改返回数组的每个元素,并使用
Object.values
修改嵌套数组的
map
。第一行是一个条件行,它通过检查哪些项是数组,哪些项不是数组来避免错误

let changed = data.data.map(e => {
    if (!e.map) return e;
    return e.map(Object.values);
}).filter(Boolean);

您可以使用
Object.keys
Object.values
Array.prototype.map
函数来实现此转换功能:

function JSONtoGoogleData(src) {
  return [Object.keys(src[0])].
    concat(
      src.map(
        obj => Object.values(obj)
      )
    );
}