【问题标题】:Each function: compare dates and group results for each day每个功能:比较每天的日期和分组结果
【发布时间】:2018-03-03 15:25:20
【问题描述】:

我正在使用 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);
    });
  }
});

谁能指出我正确的方向,好吗? 谢谢。

【问题讨论】:

标签: jquery date timestamp


【解决方案1】:

你可以将你得到的数组缩减为不同的表示形式,比如

{
  "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);
});

【讨论】:

    猜你喜欢
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    • 2012-05-10
    • 1970-01-01
    相关资源
    最近更新 更多