sách gpt4 ai đã đi

javascript - JS 日期数组如何按天分组

In lại 作者:行者123 更新时间:2023-12-03 02:57:31 28 4
mua khóa gpt4 Nike

我试图找出最优化且循环次数最少的方法来对我的 js 日期对象数组进行分组:(请注意,这是浏览器控制台输出,它实际上是真正的 JS 日期,例如 new Date( ))

[Sat Aug 08 2015 08:30:00 GMT+0200 (Central Europe Daylight Time), Sat Aug 08 2015 09:30:00 GMT+0200 (Central Europe Daylight Time), Sun Aug 09 2015 08:30:00 GMT+0200 (Central Europe Daylight Time), Sun Aug 09 2015 09:30:00 GMT+0200 (Central Europe Daylight Time), Mon Aug 10 2015 18:00:00 GMT+0200 (Central Europe Daylight Time), Mon Aug 10 2015 23:00:00 GMT+0200 (Central Europe Daylight Time), Tue Aug 11 2015 18:00:00 GMT+0200 (Central Europe Daylight Time), Tue Aug 11 2015 23:00:00 GMT+0200 (Central Europe Daylight Time), Wed Aug 12 2015 18:00:00 GMT+0200 (Central Europe Daylight Time), Wed Aug 12 2015 23:00:00 GMT+0200 (Central Europe Daylight Time)]

将同一天的每个日期放在“ block ”内的组织数组,以便我可以将其显示在 UI“8 月 8 日”上,并显示当天内的 2 个或多少个日期。

Ví dụ:

[{day: 'Aug 08', times:[Sat Aug 08 2015 08:30:00 GMT+0200 (Central Europe Daylight Time), Sat Aug 08 2015 09:30:00 GMT+0200 (Central Europe Daylight Time)]}]

我目前的想法是

var startDays = _.map(occurences, function (date) {
return moment(date).startOf('day').format();
});

之后获得独特的日子:

_.uniq(startDays, true)

在我得到独特的日子之后,另一个循环将同一天添加到这个组中,正如你现在所看到的,你可能会明白为什么我不喜欢它,这就是为什么我很想得到一些聪明的帮助,因为没有什么这让我很困惑。谢谢。

1 Câu trả lời

下划线有 _.groupBy函数应该完全符合您的要求:

var groups = _.groupBy(occurences, function (date) {
return moment(date).startOf('day').format();
});

这将返回一个对象,其中每个键都是一天,值是一个包含该天所有事件的数组。

要将对象转换为与问题中形式相同的数组,您可以使用映射:

var result = _.map(groups, function(group, day){
trở lại {
day: day,
times: group
}
});

要进行分组、映射和排序,您可以执行以下操作:

var occurrenceDay = function(occurrence){
return moment(occurrence).startOf('day').format();
};

var groupToDay = function(group, day){
trở lại {
day: day,
times: group
}
};

var result = _.chain(occurences)
.groupBy(occurrenceDay)
.map(groupToDay)
.sortBy('day')
.value();

关于javascript - JS 日期数组如何按天分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31890076/

28 4 0
Bài viết được đề xuất: javascript - Javascript Promise 中的动态链接
Bài viết được đề xuất: javascript - 为什么我的选择列表不显示?
Bài viết được đề xuất: dart - AngularDart转换/部署
Bài viết được đề xuất: azure - 模拟数据Cosmosdb
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com