【发布时间】:2015-08-08 05:44:47
【问题描述】:
我正在尝试找出最优化且循环次数最少的方法来分组我的 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)]
将同一天的每个日期排列在一个“块”内,这样我就可以在 UI“8 月 8 日”上显示它并显示 2 个或当天有多少个日期。
例如:
[{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)
在我获得独特的日子之后,另一个循环将同一天添加到该组中,正如您现在所看到的那样,您可能会明白为什么我不喜欢它,这就是为什么我希望得到一些聪明的帮助,因为没有这让我很头疼。谢谢。
【问题讨论】:
-
您是否考虑过使用 _.groupBy 而不是 _.map?
-
@GruffBunny 我不知道!我现在会调查一下谢谢
标签: javascript underscore.js momentjs