转换JavaScript二维数组

转换JavaScript二维数组,javascript,arrays,django,google-visualization,Javascript,Arrays,Django,Google Visualization,我正在创建一个仪表板来显示各种统计数据。我使用Django和创建图形。到目前为止一切都很好,但我只限于一个特殊的案例 示范班为- class Registration(models.Model): event_type = models.CharField(max_length=80) date_time = models.DateField() count = models.IntegerField() 我的问题是—— Registration.objects.fil

我正在创建一个仪表板来显示各种统计数据。我使用Django和创建图形。到目前为止一切都很好,但我只限于一个特殊的案例

示范班为-

class Registration(models.Model):
    event_type = models.CharField(max_length=80)
    date_time = models.DateField()
    count = models.IntegerField()
我的问题是——

Registration.objects.filter(event_type__in=['VHRAssmntCompleted', 
    'VNAAssmntCompleted', 
    'NonsmokersDeclrtn',
    'MWBAssmntCompleted',
    'VHCAssmntCompleted',
    'SV Document Uploads',
    'PapSmear',
    'Mammogram',], 
    date_time__range=(d3,d1)).order_by('date_time')
我以以下格式获取数据:

[["VHR", "2019-02-1", 23],
["VNA", "2019-02-1", 34],
["PAP", "2019-02-1", 50],
["VHR", "2019-02-2", 92],
["VNA", "2019-02-2", 13],
["PAP", "2019-02-2", 65],
["VHR", "2019-02-3", 192],
["VNA", "2019-02-3", 43],
["PAP", "2019-02-3", 11]]
要创建需要的数据,请使用以下格式(类似于python dataframe):

我找不到这样做的方法,要么使用Django ORM查询本身格式化它,要么使用JS进行转换


我需要关于我应该采取什么方法的帮助。

您可以按日期对它们进行分组,然后使用
对象。条目
循环经过分组的结果,并将其转换为
[日期,“VHR”,“VNA”,“PAP”]

const数据=[
[“VHR”,“2019-02-1”,23],
[“VNA”,“2019-02-1”,34],
[“PAP”,“2019-02-1”,50],
[“VHR”,“2019-02-2”,92],
[“VNA”,“2019-02-2”,13],
[“PAP”,“2019-02-2”,65],
[“VHR”,“2019-02-3”,192],
[“VNA”,“2019-02-3”,43],
[“PAP”,“2019-02-3”,11]
];
const group=data.reduce((全部[键、日期、值])=>{
全部[日期]={
…所有[日期],
[键]:值
};
全部归还;
}, {});
const result=[“日期”、“VHR”、“VNA”、“PAP”]。concat(
Object.entries(分组).map(([date,obj])=>[date,…Object.values(obj)])
);

控制台日志(结果)您可以使用对象作为值的列位置,并按日期和列收集数据

var数据=[“VHR”、“2019-02-1”、23]、“VNA”、“2019-02-1”、34]、“PAP”、“2019-02-1”、50]、“VHR”、“2019-02-2”、92]、“VNA”、“2019-02-2”、13]、“PAP”、“2019-02-2”、65]、“VHR”、“2019-02-3”、192]、“VNA”、“2019-02-3”、43]、“PAP”、“2019-02-3”、11],
cols={VHR:1,VNA:2,PAP:3},
结果=数据。减少((r,[键,日期,值])=>{
var row=r.find(([d])=>d==date);
如果(!行){
r、 推送(行=[日期,0,0,0]);
}
行[cols[key]]=值;
返回r;
},[“日期”、“VHR”、“VNA”、“PAP”]];
控制台日志(结果)
.as console wrapper{max height:100%!important;top:0;}
检查是否使用google图表
group()
方法,而不必像这里的答案那样硬编码列标题。。。
[["date", "VHR", "VNA", "PAP" ],
["2019-02-1", 23,34,50],
["2019-02-2", 92,13,65],
["2019-02-3", 192,43,11]]