我有一些类似的数据:
[
{
startTime: '2020-01-28T11:00:00',
name: 'John',
},
{
startTime: '2020-01-28T12:00:00',
name: 'Doe'
},
{
startTime: '2020-01-29T10:00:00',
name: 'javascript',
}
]
如您所见,某些对象有相同的日子,现在我想按天过滤它们!整天都是数组。
像这样:
[
{
startTime: '2020-01-28T11:00:00',
name: 'John'
},
{
startTime: '2020-01-28T12:00:00',
name: 'Doe'
},
],
[
{
startTime: '2020-01-29T10:00:00',
name: 'javascript'
},
]
您有什么建议或建议吗?
答案 0 :(得分:2)
您可以像这样创建groupBy
函数
我们通过players
中前10个字符的子字符串将startTime
分组,这将是相同的数据
var players = [
{
startTime: '2020-01-28T11:00:00',
name: 'John',
},
{
startTime: '2020-01-28T12:00:00',
name: 'Doe'
},
{
startTime: '2020-01-29T10:00:00',
name: 'javascript',
}
]
var groupBy = function(xs, key) {
return xs.reduce(function(rv, x) {
(rv[x[key].substr(0,10)] = rv[x[key].substr(0,10)] || []).push(x);
return rv;
}, {});
};
console.log(Object.values(groupBy(players, 'startTime')));