1

使用 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;
}

这似乎很好用,在我看来比更改排序功能要简单得多。

任何人都可以看到这个问题吗?或者更好的方法来做到这一点?

4

0 回答 0