我正在使用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);
});
}
});
有人能指出我正确的方向吗? 感谢。
答案 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);
});