我调用后端,在其中读取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个元素,它们需要像这样格式化的数据,我将它们单独还是一起进行?
谢谢
答案 0 :(得分:1)
使用Slave(Slave<T>::F f){
this->f = f;
}
修改返回数组的每个元素,并将map
与map
一起用于嵌套数组。第一行是有条件的,它通过检查哪些项是数组而哪些项不是数组来避免错误。
Object.values
答案 1 :(得分:1)
您可以使用Object.keys
,Object.values
和Array.prototype.map
函数来实现此转换功能:
function JSONtoGoogleData(src) {
return [Object.keys(src[0])].
concat(
src.map(
obj => Object.values(obj)
)
);
}