使用 google embed api 和数据表来可视化我的分析。问题是列没有正确使用——即所有内容都被视为字符串。我有这个代码:
gapi.client.analytics.data.ga.get(queryObj1).execute(function(results){
var myTable = new google.visualization.DataTable(results.dataTable);
....
这会正确创建 myTable,当我调试时,我看到创建的列具有正确的类型——字符串或数字。但是,当我检查 results.dataTable 中的值(查询返回的对象)时,我注意到所有内容都是一个字符串——正如人们对 ajax 调用所期望的那样。
我发现这个关于重写排序函数的线程,但这对我来说似乎有点复杂,如果出现任何问题,我不确定我是否能够弄清楚。
我的方法是遍历数据表并将所有数字列转换为实际数字。
function makeNumbers(results){
// make numbers actually numbers so they will sort properly
for(var c in results.cols){
// check if the column is a number type
if(results.cols[c].type === "number"){
// fix the values for that column is all the rows
for(var r in results.rows){
results.rows[r].c[c].v = +results.rows[r].c[c].v
}
}
}
return results;
}
这似乎很好用,在我看来比更改排序功能要简单得多。
任何人都可以看到这个问题吗?或者更好的方法来做到这一点?