Моя 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 лучших состояний.
Но эта функция sort
даже не работает, поскольку нет вывода console.log
. Фильтрация работает, но не сортировка.
Кто-нибудь может мне помочь с этим?
Рабочая демонстрация с кодом:
https://plnkr.co/edit/2jwKNuxysNqvh707?preview