每个功能:比较每天的日期和组结果

时间:2018-03-03 15:25:21

标签: jquery date timestamp

我正在使用ajax获取数据。它有效,我按照预期获得每个数据。但我想将每天的数据分组。我怎么能这样做?

我有什么:

Sat Mar 03 2018 12:48:15 GMT+0100: Message 1
Sat Mar 03 2018 12:14:38 GMT+0100: Message 2
Fri Mar 02 2018 19:41:54 GMT+0100: Message 3
Fri Mar 02 2018 19:25:16 GMT+0100: Message 4
Fri Mar 02 2018 14:02:45 GMT+0100: Message 5
Wed Feb 28 2018 18:01:13 GMT+0100: Message 6

我想要的是什么:

Sat Mar 03 2018: Message 1, Message 2
Fri Mar 02 2018: Message 3, Message 4, Message 5
Wed Feb 28 2018: Message 6

我的(简化)ajax:

$.ajax({
  type: 'GET',
  url: "my-url",
  dataType: "json",
  success: function(data) {
    $.each(data, function(k, v) {
      var date = v.date;
      var message = v.message;
      var t = new Date(date);
      $('body').append(t + ': ' + message);
    });
  }
});

有人能指出我正确的方向吗? 感谢。

1 个答案:

答案 0 :(得分:0)

您可以将阵列缩小为不同的表示,例如

{
  "date": ["Message 1", "Message 2"],
  ... 
}

// This will format the data
var newData = data.reduce(
  (acc, el) => {
    var date = el.date;
    if (acc.hasOwnProperty(date))
      acc[date].push(el.message);
    else
      acc[date] = [el.message];
    return acc;
  }, {}
)

// Now iterate over the keys and build the HTML
Object.keys(newData).forEach(function(v, k) {
  var date = v;
  var message = newData[v].join(", ");
  var t = new Date(date);
  $('body').append(t + ': ' + message);
});