Javascript 对google visualization datatable的不同值进行排序

Javascript 对google visualization datatable的不同值进行排序,javascript,sorting,datatable,google-visualization,Javascript,Sorting,Datatable,Google Visualization,在阿斯格兰特先生的回答的帮助下,我创造了一个新的世界。在这里,我将数据表旋转为 var distinctValues = data.getDistinctValues(3); var viewColumns = [0, 1]; var groupColumns = []; // build column arrays for the view and grouping for (var i = 0; i < distinctValues.length; i++) { viewCo

在阿斯格兰特先生的回答的帮助下,我创造了一个新的世界。在这里,我将数据表旋转为

var distinctValues = data.getDistinctValues(3);

var viewColumns = [0, 1];
var groupColumns = [];
// build column arrays for the view and grouping
for (var i = 0; i < distinctValues.length; i++) {
    viewColumns.push({
        type: 'number',
        label: distinctValues[i],
        calc: (function (x) {
            return function (dt, row) {
                return (dt.getValue(row, 3) == x) ? 1 : 0;
            }
        })(distinctValues[i])
    });
    groupColumns.push({
        column: i+2,
        type: 'number',
        //label: distinctValues[i],
        aggregation: google.visualization.data.sum
    });
}
var distinctValues=data.getDistinctValues(3);
var viewColumns=[0,1];
var groupColumns=[];
//为视图和分组生成列数组
对于(变量i=0;i

但是如果我使用
data.getDistinctValues(3)
方法,不同的值将按升序排序为
四月、二月、一月、三月
。因此,如何禁用排序,并获得列的顺序,如
1月、2月、3月、4月

您必须手动重新排序。如果您的值总是相同的(比如一个月的列表),那么您可以硬编码该列表:
var distinctvalue=['一月'、'二月'、'三月'…]而不是动态计算。是的。。。但月份列应根据数据动态添加。因此,如果我硬编码它,即使数据表中不存在特定的月份,额外的列也将添加零值。或者如果我硬编码它,是否有任何技术可以用零值隐藏月份列?仅供参考:您可以构建一个数组,其中只包含数据集中的月份:我调整了代码以按月份和年份排序,并用几年的数据制作了一个测试用例: