Google图表的地图数据结构

凯蒂·哈德森

我调用后端,在其中读取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}

现在,据我了解,Google图表需要将数组的第一行作为列名,而另一行则是数据。就像是

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个元素,需要像这样格式化的数据,我将它们单独还是一起进行?

谢谢

螺栓键

您可以使用Object.keysObject.values而且Array.prototype.map功能以进行这种转换功能:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章