Google数据表将列排序为数字

时间:2015-12-22 22:30:35

标签: javascript google-analytics google-datatable

使用google embed api和datatables可视化我的分析。问题是列没有正确使用 - 即所有内容都被视为字符串。我有这段代码:

gapi.client.analytics.data.ga.get(queryObj1).execute(function(results){
    var myTable = new google.visualization.DataTable(results.dataTable);
    ....

这会正确创建myTable,当我调试时,我看到创建的列具有正确的类型 - 字符串或数字。但是,当我检查results.dataTable(查询返回的对象)中的值时,我注意到所有内容都是字符串 - 正如人们对ajax调用所期望的那样。

我发现this thread有关重写sort函数的问题,但这对我来说似乎有点复杂,如果出现任何问题,我不确定我是否能够解决它。

我的方法是遍历数据表并将所有数字列转换为实际数字。

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

这似乎很有效,而且在我看来比改变排序功能简单得多。

有人能看到这个问题吗?或者更好的方法呢?

0 个答案:

没有答案