我的json结构是这样的:
0:
day: "2020-03-14"
total: {confirmed: 81, recovered: 9, deaths: 2, active: 70}
statewise: Array(37)
0: {state: "Andaman and Nicobar Islands", confirmed: 0, recovered: 0, deaths: 0, active: 0}
1: {state: "Andhra Prad ......
每天记录这些阵列。所以对于每个日期,我都有这种结构。
171-172行:
var data = json_data.data.history[7].statewise;
var data1 = json_data.data.history
最初,我试图使用特定的日期并绘制条形图。但是现在,我无需手动进行尝试。如果日期匹配此日期,则使用过滤器获取此日期数组。
296-310行:
let yearSlice = data1.filter(function(d) {
// log("d.date::::::::",d, d.day, new Date(d.day), year, (new Date(d.day).getTime()===year.getTime()));
return new Date(d.day).getTime()===year.getTime();
})
.sort(function(a,b){
log("aaaaaaaaaA:",a);
log("astatewise:", a.statewise);
return d3.descending(a.confirmed, b.confirmed) ;})
.slice(0, top_n);
yearSlice.forEach(function(d,i)
{ log("dddddddddddD:",d.statewise[i].confirmed,i);
return d.rank = i});
我试图按任何情况排序。因此,第一个元素将为我提供最大案例数的状态。然后我将对前10个州进行排名。
But this sort
function doesn't even work as there is no console.log
output. Filtering does work but not the sort thing.
有人可以帮我吗?
使用代码的演示:
在第298行,您正在进行比较,该比较始终为假,因此返回的数组为空:
return new Date(d.day).getTime()===year.getTime();
is always false