подчеркивание: groupBy в метке времени django

#django #underscore.js

#django #underscore.js

Вопрос:

у меня есть объекты, каждый из которых имеет timestamp поле, состоящее из даты и времени, подобного

 data1 --> "2014-06-26T11:06:19.315404 00:00"
data2 --> "2014-06-26T08:04:29.755019 00:00"
data3 --> "2014-06-26T08:03:51.008563 00:00"
  

использование underscore.js я пытаюсь сгруппировать данные по полю метки времени, например

 grp_data = _.groupBy(result, "timestamp")
  

Ожидаемый результат:

 {"2014-06-26": [data1, data2, data3] }
  

что происходит, так это :

     {"2014-06-26": [data1],
      {"2014-06-26": [data2],
      {"2014-06-26": [data3],

}
  

причина вышеуказанного поведения заключается в том, что каждая временная метка data1, data2, data3 отличается из-за T11:06:19.315404 00:00" того, что добавляется в метку времени.
вот почему данные не сгруппированы ожидаемым образом.

Есть ли какой-либо способ обойти это?

Ответ №1:

Передайте функцию groupBy, которая извлекает часть даты:

     var result = [ 
        { id: 'data1', timestamp: "2014-06-26T11:06:19.315404 00:00" },
        { id: 'data2', timestamp: "2014-06-26T11:06:19.315404 00:00" },
        { id: 'data3', timestamp: "2014-06-26T11:06:19.315404 00:00" }
    ];

    var extractDate = function(datum){
        return datum.timestamp.substring(0,10);
    }

    var grp_data = _.groupBy(result, extractDate);