Невозможно отсортировать элемент во вложенном json - PullRequest
0 голосов
/ 08 мая 2020

Моя 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

1 Ответ

0 голосов
/ 09 мая 2020

Я разобрался. Мне нужно получить такой массив:

 var yearSlice = data1.filter(function(d) {

  return new Date(d.day).getTime()===year.getTime();
 })[0].statewise;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...